请教!!!如何写一个删除指定目录下文件的程序,并且可以设置时间段,与删除IE中的临时文件类似。最好有源码!!
解决方案 »
- MFC怎么才能将数个位图加载到对话框中的Picture控件上
- 12007错误HttpSendRequestEx
- VC2005的基于对话框的程序如何打包发布?
- CTypedPtrArray 中的 RemoveAt后是否需要delete掉
- 想仔细了解一下Device Object~~~ 在线ing
- 如何实现类似VC Workspace风格的窗口?
- 怎样产生一个随机数,谢谢
- 请教:怎么在opencv中自定义团块跟踪模块啊???
- vc编译器,每次都把所有文件都编一遍,是哪里出错了?
- 控制工具栏显示的语句在的哪个函数中?我不想让工具栏显示应怎么做?
- 删除文件问题?
- 求助:一个程序已经在运行了,再双击这个可执行程序,不会运行两个这样的程序,只是跳出先前程序的窗口。请问如何实现!
【解答1】如果不进行递归删除。你可以使用API函数SHFileOperation,它可以一次删除目录及其下面的子目录和文件。
示例代码:
BOOL DelTree(LPCTSTR lpszPath)
{
SHFILEOPSTRUCT FileOp;
FileOp.fFlags = FOF_NOCONFIRMATION;
FileOp.hNameMappings = NULL;
FileOp.hwnd = NULL;
FileOp.lpszProgressTitle = NULL;
FileOp.pFrom = lpszPath;
FileOp.pTo = NULL;
FileOp.wFunc = FO_DELETE;
return SHFileOperation(&FileOp) == 0;
}【解答2】使用递归调用,逐个删除:
示例代码: 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;
}
{
_unlink("c:\temp.txt");//删除文件
}
学习ing
if (DelTree(c:\\tmp) != TRUE){return ;}
if (DeleteDirectory(c:\\tmp) != TRUE){return ;}
http://www.51one.net/info/4212360135252281.htm
unsigned short usMagic; // 魔法数字
unsigned short usNumSec; // 段落(Section)数
unsigned long ulTime; // 时间戳
unsigned long ulSymbolOffset; // 符号表偏移
unsigned long ulNumSymbol; // 符号数
unsigned short usOptHdrSZ; // 可选头长度
unsigned short usFlags; // 文件标记
} FILEHDR;其中,unsigned long ulTime;就是文件建立的时间了。