求一个可以删除目录的函数!
我用一个函数删除目录,在窗口下可以正常删除,但在控制台就不行了,不知道怎么回事! 问题点数:20、回复次数:3Top
1 楼Behard(我爱天安门)回复于 2003-11-04 21:11:19 得分 8
#include <vcl.h>
#pragma hdrstop
#include <shellapi.h>
#include <conio.h>
#include <stdio.h>
#pragma argsused
int main(int argc, char* argv[])
{
SHFILEOPSTRUCT FileOp;
char fPath[256], tPath[256];
memset ( &FileOp, 0, sizeof(FileOp) );
memset ( fPath, 0, sizeof(fPath) );
memset ( tPath, 0, sizeof(tPath) );
FileOp.wFunc = FO_DELETE ;
strcpy ( fPath, "D:\\temp\\temp" );
// strcpy ( tPath, "F:\\Tools\\0ffice2000.rar" );
FileOp.pFrom = fPath;
FileOp.pTo = tPath;
FileOp.fFlags = FOF_NOCONFIRMATION; // 不提问而强迫删除
if ( ! SHFileOperation ( &FileOp ) ) printf ( "OK" );
else printf ( "Failed!" );
while( ! kbhit() ); getch();
return 0;
}
Top
2 楼Tyguest228(天涯)回复于 2003-11-04 23:57:55 得分 12
//这个通用的,作者是谁我不知,贴出来你自己试试吧.
enum modes{ONLEFILE, ALLDIRFELE};
bool DeleteDirFile(String sPathfile, modes MD )
{
String s1,s2;
HWND h = NULL;
WIN32_FIND_DATA data;
(sPathfile[sPathfile.Length()]=='\\') ? s1=sPathfile : s1=sPathfile+"\\";
s2 = s1 +"*.*";
if((h=FindFirstFile(s2.c_str(),&data))!=0)
do
{
if( (String(data.cFileName)==".") || (String(data.cFileName)=="..") )
continue;
if ((data.dwFileAttributes==FILE_ATTRIBUTE_DIRECTORY) && (MD!=ONLEFILE)) //删除文件夹
DeleteDirFile(s1+String(data.cFileName), MD);
s2 = s1+String(data.cFileName); //提取文件名
DeleteFile(s2.c_str()); //删除文件
}while (FindNextFile(h,&data));
FindClose(h);
if (MD!=ONLEFILE)
RemoveDirectory(s1.c_str()); //删除文件夹
return True;
}
//如果可以用别忘了告诉我一声喔! ty7228@163.comTop
3 楼sensing(想到韩国去工作+留学!)回复于 2003-11-13 21:43:09 得分 0
我现在才发现自己的函数是正确,只是只读的,谢谢楼上的提醒!!
setfileattr()Top
相关问题
- 什么c函数能删除不为空的目录
- 想要一个删除整个目录的API函数和一个COPY整个目录的函数,please help me
- 给46分请教,删除一个非空目录用哪个函数?
- 请问删除目录中的文件(包括子目录)的函数是什么?
- 谁有删除当前目录下所有子目录及其文件的函数
- 有没有函数可以直接删除一个目录(不论目录中有没有文件)(声明本人不需要自己写函数)
- 一个删除文件目录的函数,但说着不到TSHFILEOPSTRUCT;这种数据类型???
- 急寻:怎样使用一个函数或别的方法删除一个非空目录?
- 自己写的一个删除任意级数目录的函数(用kill和rmdir),大家一起看看
- 请教:删除特定目录下某一文件应该使用什么函数?"c:\output.txt




