Ir ao conteúdo
  • Cadastre-se

Renomear arquivos automaticamente C/C++


Marcello Galvão

Posts recomendados

Bom dia pessoal, terminei a disciplina de lógica na faculdade e estou começando a aprender um pouco sobre linguagens. 

Estou precisando criar um aplicativo que renomeia todos os arquivos novos de uma pasta (há um programa que gera arquivos constantemente para essa pasta) com o seguinte formato:

Data - NomeDaPasta - Horario em que o arquivo foi gerado.

 Ex:

23.02 - aaaa (Caso o nome da pasta for aaaa) - 00:15 (horário em que ele foi gerado, e não o horário atual do sistema, a não ser que o aplicativo seja iniciado automaticamente quando um novo arquivo for gerado. Mas eu pensei em colocar o agendador de tarefas do windows p/ rodar esse aplicativo.)

 

Minha dúvida é COMO colocar a data e o horário em que ele foi gerado no arquivo.

 

Posso fazer em C ou C++...

Agradeço desde já!!

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

voce nao precisa colocar o horario e a data que ele foi gerado,o S.O ja guarda essas informações do arquivo

voce pode abrir um handle para um objeto arquivo usando CreateFile e depois chamar a função GetFileInformationByHandle passando esse handle..isso vai preencher uma estrutura do tipo "BY_HANDLE_FILE_INFORMATION" com nao só essas mas tambem outras informações sobre o arquivo,por exemplo :

HANDLE harq = CreateFile("Nomedoarquivo",...resto dos argumentos)BY_HANDLE_FILE_INFORMATION info;GetFileInformationByHandle(harq,&info);//Passa o handle pro arquivo aberto e um ponteiro para a estrutura  

Sobre a funcao CreateFile - https://msdn.microsoft.com/en-us/library/windows/desktop/aa363858%28v=vs.85%29.aspx

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Acho que seria melhor então voce acessar o diretório e listar todos os arquivos,alguma coisa assim :

WIN32_FIND_DATA info;HANDLE hprocura = FindFirstFile("caminho do diretorio",&info);    if(hprocura == INVALID_HANDLE_VALUE)    {        std::cout<<"Falhou"<<std::endl;        return - 1;    }WIN32_FIND_DATA info2;    while(FindNextFile(hprocura,&info2) == TRUE)    {//Se nao for um diretório entao pega as informações do arquivo//Se nao tiver um subdiretório nesse diretório dos arquivos //entao ignora esse teste         if( info2.dwFileAttributes != FILE_ATTRIBUTE_DIRECTORY)        {       //Pega as informações em info2        }    }

Pra converter o tempo,usa a função FileTimeToSystemTime - https://msdn.microsoft.com/en-us/library/windows/desktop/ms724280%28v=vs.85%29.aspx

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...