小弟我用VC程序搜索完U盘上的文件后,U盘无法正常拔出,这是为什么?怎么在不关闭小弟我的程序下正常弹出U盘?程序如下
我用VC程序搜索完U盘上的文件后,U盘无法正常拔出,这是为什么?如何在不关闭我的程序下正常弹出U盘?程序如下:
#include <windows.h>
#include <stdio.h>
WIN32_FIND_DATA FileData;
HANDLE hSearch;
DWORD dwAttrs;
char szDirPath[] = "c:\\TEXTRO\\ ";
char szNewPath[MAX_PATH];
char szHome[MAX_PATH];
BOOL fFinished = FALSE;
// Create a new directory.
if (!CreateDirectory(szDirPath, NULL))
{
printf( "Couldn 't create new directory. ");
return;
}
// Start searching for .TXT files in the current directory.
hSearch = FindFirstFile( "*.txt ", &FileData);
if (hSearch == INVALID_HANDLE_VALUE)
{
printf( "No .TXT files found. ");
return;
}
// 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);
if (CopyFile(FileData.cFileName, szNewPath, FALSE))
{
dwAttrs = GetFileAttributes(FileData.cFileName);
if (!(dwAttrs & FILE_ATTRIBUTE_READONLY))
{
SetFileAttributes(szNewPath,
dwAttrs | FILE_ATTRIBUTE_READONLY);
}
}
else
{
printf( "Couldn 't copy file. ");
return;
}
if (!FindNextFile(hSearch, &FileData))
{
if (GetLastError() == ERROR_NO_MORE_FILES)
{
MessageBox(hwnd, "No more .TXT files. ",
"Search completed. ", MB_OK);
fFinished = TRUE;
#include <windows.h>
#include <stdio.h>
WIN32_FIND_DATA FileData;
HANDLE hSearch;
DWORD dwAttrs;
char szDirPath[] = "c:\\TEXTRO\\ ";
char szNewPath[MAX_PATH];
char szHome[MAX_PATH];
BOOL fFinished = FALSE;
// Create a new directory.
if (!CreateDirectory(szDirPath, NULL))
{
printf( "Couldn 't create new directory. ");
return;
}
// Start searching for .TXT files in the current directory.
hSearch = FindFirstFile( "*.txt ", &FileData);
if (hSearch == INVALID_HANDLE_VALUE)
{
printf( "No .TXT files found. ");
return;
}
// 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);
if (CopyFile(FileData.cFileName, szNewPath, FALSE))
{
dwAttrs = GetFileAttributes(FileData.cFileName);
if (!(dwAttrs & FILE_ATTRIBUTE_READONLY))
{
SetFileAttributes(szNewPath,
dwAttrs | FILE_ATTRIBUTE_READONLY);
}
}
else
{
printf( "Couldn 't copy file. ");
return;
}
if (!FindNextFile(hSearch, &FileData))
{
if (GetLastError() == ERROR_NO_MORE_FILES)
{
MessageBox(hwnd, "No more .TXT files. ",
"Search completed. ", MB_OK);
fFinished = TRUE;