在遍历过程中的找到的那个文件,为什么我对它进行操作的时候CreateFile打不开,
如果不用遍历则没有问题。
我要修改一个目录下所有的文件的时间为当前时间。
{
WIN32_FIND_DATA FileData;
HANDLE hSearch;
DWORD dwAttrs;
char szDirPath[] = "D:\\sample\\";
char szNewPath[MAX_PATH];
char szHome[MAX_PATH];
BOOL fFinished = FALSE;
SYSTEMTIME sysTime;
GetLocalTime(&sysTime); // Start searching for .TXT files in the current directory.
hSearch = FindFirstFile("*.h", &FileData);
if (hSearch == INVALID_HANDLE_VALUE)
{
MessageBox (NULL,"11","FindFirstFile",MB_OK);
}
// Copy each .TXT file to the new directory
// and change it to read only, if not already.
while (!fFinished)
{
lstrcpy(szNewPath, szDirPath);
lstrcat(szNewPath, FileData.cFileName);
{
SYSTEMTIME new_stime;
FILETIME lpCreationTime;
FILETIME lpLastAccessTime;
FILETIME lpLastWriteTime;
HANDLE hFile;
hFile = CreateFile( szNewPath, GENERIC_READ | GENERIC_WRITE,
FILE_SHARE_READ| FILE_SHARE_WRITE,
NULL,
OPEN_EXISTING|FILE_FLAG_OVERLAPPED,
FILE_ATTRIBUTE_NORMAL,
NULL );
GetLocalTime(&new_stime);
SystemTimeToFileTime(&new_stime, &lpCreationTime);
BOOL bTest = SetFileTime(hFile, &lpCreationTime, &lpCreationTime,&lpCreationTime);
;
}
if (!FindNextFile(hSearch, &FileData))
{
fFinished = TRUE;
}
}
// Close the search handle.
if (!FindClose(hSearch))
{
MessageBox (NULL,"11","FindFirstFile",MB_OK);
}
}
如果不用遍历则没有问题。
我要修改一个目录下所有的文件的时间为当前时间。
{
WIN32_FIND_DATA FileData;
HANDLE hSearch;
DWORD dwAttrs;
char szDirPath[] = "D:\\sample\\";
char szNewPath[MAX_PATH];
char szHome[MAX_PATH];
BOOL fFinished = FALSE;
SYSTEMTIME sysTime;
GetLocalTime(&sysTime); // Start searching for .TXT files in the current directory.
hSearch = FindFirstFile("*.h", &FileData);
if (hSearch == INVALID_HANDLE_VALUE)
{
MessageBox (NULL,"11","FindFirstFile",MB_OK);
}
// Copy each .TXT file to the new directory
// and change it to read only, if not already.
while (!fFinished)
{
lstrcpy(szNewPath, szDirPath);
lstrcat(szNewPath, FileData.cFileName);
{
SYSTEMTIME new_stime;
FILETIME lpCreationTime;
FILETIME lpLastAccessTime;
FILETIME lpLastWriteTime;
HANDLE hFile;
hFile = CreateFile( szNewPath, GENERIC_READ | GENERIC_WRITE,
FILE_SHARE_READ| FILE_SHARE_WRITE,
NULL,
OPEN_EXISTING|FILE_FLAG_OVERLAPPED,
FILE_ATTRIBUTE_NORMAL,
NULL );
GetLocalTime(&new_stime);
SystemTimeToFileTime(&new_stime, &lpCreationTime);
BOOL bTest = SetFileTime(hFile, &lpCreationTime, &lpCreationTime,&lpCreationTime);
;
}
if (!FindNextFile(hSearch, &FileData))
{
fFinished = TRUE;
}
}
// Close the search handle.
if (!FindClose(hSearch))
{
MessageBox (NULL,"11","FindFirstFile",MB_OK);
}
}
解决方案 »
- 怎样用方向键切换不同组的单选按钮的焦点
- PostThreadMessage不能加threadid的问题?
- VC程序异常退出
- 有两个问题 请“凤之焚”兄进来看看,其大侠也可!
- 这个问题很郁闷,不知道怎么解决啊,请各位大虾帮帮忙啊 !!!!!!
- 微软的MediaPlayer 7.0中的缓慢拉出的效果是用什么技术实现的?先谢过大家了
- 一个通过ADO访问数据库时的问题!(在线等待)
- 请问在vc中怎样把一些数据通过另一个dailog(对话框)显示出来?
- 请大家指教
- Release编译时出现的"All reference to "XXXX.dll" is dicarded by OPT:/REF???
- 标题栏问题
- 程序退出的时候发生内存泄露问题!!!!急!!!!!!!
lstrcat(szNewPath, "*.txt");
hSearch = FindFirstFile(szNewPath, &FileData);
我可以跟踪到那一块来,只不过CREATEFIEL FAILED。
lstrcat(szNewPath, FileData.cFileName);
变成了d:\sample\找到的文件然后CreateFile( szNewPath, GENERIC_READ | GENERIC_WRITE,
FILE_SHARE_READ| FILE_SHARE_WRITE,
NULL,
OPEN_EXISTING|FILE_FLAG_OVERLAPPED,
FILE_ATTRIBUTE_NORMAL,
NULL );
是打开已存在的文件,你确定d:\sample里有你在别的目录找到的文件吗?