Ir ao conteúdo
  • Cadastre-se
claude754

Diretorio e Pasta em C++

Recommended Posts

Boa Noite!

 

Estou com problema que não sei resolver, é o seguinte:

Eu estou copiando um arquivo e criando a pasta onde o arquivo será copiado, também estou testando caso ocorra erro ao criar a pasta.

mas se eu fizer o backup 2 vezes ele me trás o erro que já existe esta pasta, não quero que apareça esse erro, como faço? segue o código:

#include <iostream>#include <stdlib.h>#include <direct.h>#include <string.h>using namespace std;int menu(){    int nivel;    cout<< ("*-----------------------------*\n");    cout<< ("|           opções            |\n");    cout<< ("*-----------------------------*\n");    cout<< ("|  1 - BACKUP                 |\n");    cout<< ("|  2 - SUBSTITUIR             |\n");    cout<< ("|  5 - SAIR DO PROGRAMA       |\n");    cout<< ("*-----------------------------*\n");    cout<< ("DIGITE A CONDICAO DESEJADA: \n");    cin >> (nivel);    cin.ignore();    system("cls");    return nivel;}int backup(){    //criando o diretório    wchar_t diretorio[] = L"C:\\Backup";    //testando se houve erro na criação do diretório    if(_wmkdir(diretorio) == -1){        cout << "ERRO: " << strerror(errno) << endl;    }    else{        cout << "DIRETORIO CRIADO COM SUCESSO" << endl;    }    system("copy \"C:\\Users\\Usuário\\AppData\\Local\\Google\\Chrome\\User Data\\Default\\History\" \"C:\\Backup\\History\"");}int substituir(){    system("copy \"C:\\Backup\\Teste.txt\" \"C:\\Users\\Usuário\\AppData\\Local\\Google\\Chrome\\User Data\\Default\"");}int main(){    do{        int opcao = menu();        switch(opcao)        {            case 1:            {                backup();                break;            }            case 2:            {                substituir();                break;            }            case 5:            {                exit(0);            }        }    }while(true);}

como faço para o erro File exists não aparecer?

E como eu poderia criar a pasta de acordo com o nome que eu escolher?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Troque a sua mensagem de erro por esta:

cout << "Codigo do erro: ( " << errno << " ) - Motivo: " << strerror(errno) << endl;

 

Você verá qual o código retornado e assim saber qual o motivo para poder tratar.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi... com o código que retornará, eu posso fazer condições caso aquele código especifico ocorra?

E quanto a criar a pasta com o nome que eu digitar, tem como?

Compartilhar este post


Link para o post
Compartilhar em outros sites

1) Sim. Conforme o código retornado, você define a ação a ser tomada.

 

2) Sim. Basta trocar o nome atual da pasta por uma variável e fazer com que o programa solicite o nome ao usuário.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu não consigo concatenar tentei vareas formas tipo:

    string p;    cout<<"Digite o nome da pasta a ser criada em C:\ - ";    cin >>p;
wchar_t diretorio[] = L"C:\\"<<p;wchar_t diretorio[] = L"C:\\<<p";wchar_t diretorio[] = L"C:\\"+p;
wchar_t diretorio[] = L"C:\\"+<<p;

Mas nenhuma deu certo, como eu poderia fazer?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não manjo muito de C++, mas sei que dá pra concatenar strings usando sinal de atribuição com adição.

    string str_1 = "palavra_1";    string str_2 = "palavra_2";    string saida = "";     saida = str_1 + " " + str_2;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×