我需要目录中所有文件的创建日期,它适用于所有文件,但不适用于文件夹。
int antiguedad(char * nombre){
ZeroMemory(&fileinfo, sizeof(BY_HANDLE_FILE_INFORMATION));
// obtain a handle to the file, in this case the file
// must be in the same directory as your application
HANDLE myfile = NULL;
//char * nombre = "nuevooo.txt";
myfile = CreateFileA(nombre,0x00,0x00,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
// if we managed to obtain the desired handle
if(myfile!=INVALID_HANDLE_VALUE)
{
//try to fill the structure with info regarding the file
if(GetFileInformationByHandle(myfile, &fileinfo))
{
SYSTEMTIME systemTime;
FileTimeToSystemTime(&fileinfo.ftCreationTime, &systemTime);
printf("El archivo tiene %i dias \n", diferenciaEndias(systemTime.wDay,systemTime.wMonth, systemTime.wYear));
}
CloseHandle(myfile);
}
else {
printf("IT A FOLDER \n");
}
return 0;
}
我认为文件夹需要特定的代码,但是我什么也没找到
最佳答案
避免使用FILE_ATTRIBUTE_NORMAL(实际上意味着没有其他所有属性,包括只读/归档/系统/隐藏等,因此它可能与您的期望不符-尽管可以根据CreateFile的意图将其忽略)。
要获得文件夹的有效句柄,请包含FILE_FLAG_BACKUP_SEMANTICS。