| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 448 人关注过本帖
标题:vc文件删除问题
只看楼主 加入收藏
xiayong138
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2007-5-11
收藏
 问题点数:0 回复次数:1 
vc文件删除问题
  我要删除一文件夹下的所有文件,此文件夹下包含一个或多个子文件夹
怎么做啊????
搜索更多相关主题的帖子: 文件 删除 
2007-05-16 15:21
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 
只是将打印的删除语句换成删除就可以了.
比如printf("删除文件%s\n",path);->DeleteFile(path);
#include <afx.h>
#include<iostream>
using namespace std;

void MessageErr(LONG re)
{
LPVOID lpMsgBuf;
FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER|FORMAT_MESSAGE_FROM_SYSTEM|FORMAT_MESSAGE_IGNORE_INSERTS,\
NULL,re,0,(LPTSTR) &lpMsgBuf,0,NULL);
MessageBox( NULL, (LPCTSTR)lpMsgBuf, \"Error\", MB_OK | MB_ICONINFORMATION );
LocalFree( lpMsgBuf );
}

BOOL DelDir(LPTSTR path)
{
WIN32_FIND_DATA wfd;
LONG re=ERROR_SUCCESS;
BOOL b=TRUE;
LPTSTR file=NULL;
HANDLE hFile = FindFirstFile(path,&wfd);
if((wfd.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY)!=FILE_ATTRIBUTE_DIRECTORY)
{
// DeleteFile(path);
printf(\"删除文件%s\n\",path);
goto SUCCEESS;
}
file=(LPTSTR)HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,lstrlen(path)+lstrlen(\"\\*.*\")+1);
lstrcat(file,path);
lstrcat(file,\"\\*.*\");
for(hFile = FindFirstFile(file,&wfd);b==TRUE;b=FindNextFile(hFile,&wfd))
{
if((wfd.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY)!=FILE_ATTRIBUTE_DIRECTORY)
{
printf(\"删除文件%s\\%s\n\",path,wfd.cFileName);
}
else if(!lstrcmp(wfd.cFileName,\".\")||!lstrcmp(wfd.cFileName,\"..\"))
continue;
else
{
LPTSTR filename=(LPTSTR)HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,lstrlen(file)+lstrlen(\"\\\")+lstrlen(wfd.cFileName)+1);
lstrcat(filename,path);
lstrcat(filename,\"\\\");
lstrcat(filename,wfd.cFileName);
BOOL del=DelDir(filename);
HeapFree(GetProcessHeap(),HEAP_NO_SERIALIZE,filename);
if(!del)
goto FAIL;
}

}
re=GetLastError();
if(ERROR_NO_MORE_FILES!=re&&re!=ERROR_SUCCESS)
{
MessageErr(re);
goto FAIL;
}
printf(\"删除文件夹%s\n\",path);
goto SUCCEESS;
FAIL:
HeapFree(GetProcessHeap(),HEAP_NO_SERIALIZE,file);
return FALSE;
SUCCEESS:
HeapFree(GetProcessHeap(),HEAP_NO_SERIALIZE,file);
return TRUE;
}

void main()
{
system(\"pause\");
if(!DelDir(\"E:\\wfpb\"))
{
printf(\"没有删除完全,请手动删除\n\");
}
else
{
printf(\"成功完全删除\n\");
}
system(\"pause\");
}

[此贴子已经被作者于2007-5-17 10:11:12编辑过]


[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2007-05-17 10:10
快速回复:vc文件删除问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015911 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved