文件夹不能按右键删除,若是把其中的每一个文件都删除之后才可以删除,这是为什么呢??????? 我用CreateDirectory与CreateFile创建的临时文件夹和文件,需要用程序删除时却删不掉,说有文件正在使用,但是我把里面的所有文件全部删除,该文件夹才可删除,这是为什么呢!望有经验的朋友指点一二!!!!!!11 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 deletefile()可删除文件(不包含文件夹),removedirctory()可删除文件夹,但此文件夹下不能再有文件(.和..)除外!要删除整个文件夹,可使用shell函数!如下: SHFILEOPSTRUCT sfo; sfo.hwnd = NULL; sfo.wFunc = FO_DELETE; sfo.pFrom = "c:\\test\0"; sfo.pTo = NULL; sfo.fFlags = FOF_NOCONFIRMATION|FOF_SILENT; SHFileOperation(&sfo);具体函数见MSDN! BOOL DeleteDirectory(char *DirName)//如删除 DeleteDirectory("c:\\aaa") { CFileFind tempFind; char tempFileFind[MAX_PATH]; sprintf(tempFileFind,"%s\\*.*",DirName); BOOL IsFinded=(BOOL)tempFind.FindFile(tempFileFind); while(IsFinded) { IsFinded=(BOOL)tempFind.FindNextFile(); if(!tempFind.IsDots()) { char foundFileName[MAX_PATH]; strcpy(foundFileName,tempFind.GetFileName().GetBuffer(MAX_PATH)); if(tempFind.IsDirectory()) { char tempDir[MAX_PATH]; sprintf(tempDir,"%s\\%s",DirName,foundFileName); DeleteDirectory(tempDir); } else { char tempFileName[MAX_PATH]; sprintf(tempFileName,"%s\\%s",DirName,foundFileName); DeleteFile(tempFileName); } } } tempFind.Close(); if(!RemoveDirectory(DirName)) { MessageBox(0,"删除目录失败!","警告信息",MB_OK);//比如没有找到文件夹,删除失败,可把此句删除 return FALSE; } return TRUE;} 这样说吧,我是从我的一个合成文件中读出原来的文件,并在windows临时目录中创建这些文件以及文件夹,我想把这些文件拖动的一个目录,但是不能拖动,小一些的文件夹就可以,大的就不能拖,这是为什么呢,太奇怪了,望高手指点!!!!!!!! 怎么自动格式化硬盘? vb库存小程序,达人帮忙啊!!!!!!!!!!!!!!!!!!!!!!!谢谢 在VB中用API函数写一个完整的串口通讯函数,请求源码! 6月30日是VB基础版 PigPag 的生日,但是那天我在学校,所以提前祝他生日快乐。大家帮着顶一下,最好顶到6月30日。 有没有办法编程监视网络打印机? 在线等待 在VB中如何调用系统的字体和颜色 谁有将EXE文件中的ICO图标转换为PICTURE对象的函数? 如何设置另一个程序的EDIT的文本内容啊(我有这个EDIT的HWND)!!!!! 关于剪贴版中几个api的用法 vb问题 vb中如何调用DLL,有无相关文档资料介绍下,谢先!
SHFILEOPSTRUCT sfo;
sfo.hwnd = NULL;
sfo.wFunc = FO_DELETE;
sfo.pFrom = "c:\\test\0";
sfo.pTo = NULL;
sfo.fFlags = FOF_NOCONFIRMATION|FOF_SILENT;
SHFileOperation(&sfo);
具体函数见MSDN!
{
CFileFind tempFind;
char tempFileFind[MAX_PATH];
sprintf(tempFileFind,"%s\\*.*",DirName);
BOOL IsFinded=(BOOL)tempFind.FindFile(tempFileFind);
while(IsFinded)
{
IsFinded=(BOOL)tempFind.FindNextFile();
if(!tempFind.IsDots())
{
char foundFileName[MAX_PATH];
strcpy(foundFileName,tempFind.GetFileName().GetBuffer(MAX_PATH));
if(tempFind.IsDirectory())
{
char tempDir[MAX_PATH];
sprintf(tempDir,"%s\\%s",DirName,foundFileName);
DeleteDirectory(tempDir);
}
else
{
char tempFileName[MAX_PATH];
sprintf(tempFileName,"%s\\%s",DirName,foundFileName);
DeleteFile(tempFileName);
}
}
}
tempFind.Close();
if(!RemoveDirectory(DirName))
{
MessageBox(0,"删除目录失败!","警告信息",MB_OK);//比如没有找到文件夹,删除失败,可把此句删除
return FALSE;
}
return TRUE;
}