VC删除文件夹操作代码

VC中文件(夹)目录与路径操作原理与代码实现 最近在做安装包解压,涉及到很多关于路径的操作,当然很需要调用很多Windows API函数,本来是没有什么技术含量的,但由于Windows中关于目录、路径的操作较为重要,而且其中蕴含着一些重要的编程思想及技巧,所以在此加以总结,希望对以后的学习工作起到作用,同时更希望能帮助大家解决问题,共同创建一个知识分享型的网络社区。 阅读详情

VS删除文件夹

//功能: 删除非空目录文件夹

//输入: DirName 文件夹名

//输出: 删除是否成功

//功能: 迭代文件夹内文件,一个一个删除

BOOL DeleteDirectory(char *DirName)

{

CFileFind tempFind;

char tempFileFind[200];

sprintf(tempFileFind,"%s\\*.*",DirName);

BOOL IsFinded=(BOOL)tempFind.FindFile(tempFileFind);

while(IsFinded)

{

IsFinded=(BOOL)tempFind.FindNextFile();

if(!tempFind.IsDots())

{

char foundFileName[200];

strcpy(foundFileName,tempFind.GetFileName().GetBuffer(200));

if(tempFind.IsDirectory())

{

char tempDir[200];

sprintf(tempDir,"%s\\%s",DirName,foundFileName);

DeleteDirectory(tempDir);

}

else

{

char tempFileName[200];

sprintf(tempFileName,"%s\\%s",DirName,foundFileName);

DeleteFile(tempFileName);

}

}

}

tempFind.Close();

if(!RemoveDirectory(DirName))

{

MessageBox("删除目录失败!","警告信息",MB_OK);

return FALSE;

}

return TRUE;

}

---------------------------------------------------------记录

void CDeletefileDlg::OnBtnok() //单一文件选择框

{

// TODO: Add your control notification handler code here

CFileDialog file(true);

CString str;

if (IDOK==file.DoModal())

{

// str=file.GetFileName();

str=file.GetPathName();

}

SetDlgItemText(IDC_FILENAME,str);

}

void CDeletefileDlg::OnBtndelete() //删除单一文件

{

// TODO: Add your control notification handler code here

CString cstr;

GetDlgItemText(IDC_FILENAME,cstr);

CFile::Remove(cstr);

SetDlgItemText(IDC_FILENAME,"");

MessageBox(cstr+"已删除成功!");

}

void CDeletefileDlg::OnBtndirtest() //文件夹选择框

{

// TODO: Add your control notification handler code here

BROWSEINFO bi; //定义文件浏览对象

char buffer[MAX_PATH]; //定义字符缓冲区

ZeroMemory(buffer,MAX_PATH); //初始化字符缓冲区

bi.hwndOwner=GetSafeHwnd();

bi.pidlRoot=NULL;

bi.pszDisplayName=buffer;

bi.lpszTitle="请选择一个文件夹"; //设置浏览框标题

bi.ulFlags=BIF_EDITBOX;

bi.lpfn=NULL;

bi.lParam=0;

bi.iImage=0;

LPITEMIDLIST pList=NULL;

if ( (pList=SHBrowseForFolder(&bi)) != NULL ) //弹出浏览框对话框

{

char path[MAX_PATH];

ZeroMemory(path,MAX_PATH);

SHGetPathFromIDList(pList,path); //获取用户目录

GetDlgItem(IDC_DIR)->SetWindowText(path);

}

}

void CDeletefileDlg::OnBtndel() //目录删除函数

{

// TODO: Add your control notification handler code here

GetDlgItemText(IDC_DIR,filestr);

delDirFile(filestr); //删除目录下的所有文件

SetDlgItemText(IDC_DIR,"");

RemoveDirectory(filestr); //删除空目录

MessageBox(filestr+"目录已经完全删除!");

}

void CDeletefileDlg::delDirFile(CString spath) //删除目录下的所有文件函数

{

CFileFind find;

BOOL bworking=find.FindFile(spath+"\\*.*");

while (bworking)

{

bworking=find.FindNextFile();

CString filename=find.GetFileName();

if (find.MatchesMask(FILE_ATTRIBUTE_DIRECTORY))

{

if ( (filename!=".") && (filename != "..") ) //滤过 . 和 .. 文件夹

{

delDirFile(spath+"\\"+filename);

}

}

else

{

CFile::Remove(spath+"\\"+filename); //如果不是文件夹 直接删除

}

RemoveDirectory(spath+"\\"+filename); //

}

}

void CDeletefileDlg::finddir(CString findpath) //查找根目录下的所有子文件

{

CString deldir;

GetDlgItemText(IDC_DELDIRNAME,deldir);

CFileFind find;

CString filename,tempstr,filepath;

BOOL bworking=find.FindFile(findpath+"\\*.*");

while(bworking)

{

bworking=find.FindNextFile();

filepath=find.GetFilePath();

filename=find.GetFileName();

tempstr=filename.Right(5);

if ((deldir==tempstr) && find.MatchesMask(FILE_ATTRIBUTE_DIRECTORY))

{

delDirFile(filepath);

RemoveDirectory(filepath);

}

else if( (filename!=".") && (filename != "..") && find.MatchesMask(FILE_ATTRIBUTE_DIRECTORY) ) //这里的递归有问题

{

finddir(findpath+"\\"+filename);

}

}

find.Close();

}

void CDeletefileDlg::OnDeldebug() //删除特定的文件夹函数

{

// TODO: Add your control notification handler code here

CString path;

GetDlgItemText(IDC_DIR,path);

CString childpath;

GetDlgItemText(IDC_DELDIRNAME,childpath);

finddir(path);

SetDlgItemText(IDC_DIR,"");

SetDlgItemText(IDC_DELDIRNAME,"");

MessageBox(path+"下的所有"+childpath+"已经全部删除!");

}

----------------------------------------记录2

//删除文件夹目录(非空)

bool DeleteDirectory(char* sDirName)

...{

CFileFind tempFind;

char sTempFileFind[200] ;

sprintf(sTempFileFind,"%s\*.*",sDirName);

BOOL IsFinded = tempFind.FindFile(sTempFileFind);

while (IsFinded)

...{

IsFinded = tempFind.FindNextFile();

if (!tempFind.IsDots())

...{

char sFoundFileName[200];

strcpy(sFoundFileName,tempFind.GetFileName().GetBuffer(200));

if (tempFind.IsDirectory())

...{

char sTempDir[200];

sprintf(sTempDir,"%s\%s",sDirName,sFoundFileName);

DeleteDirectory(sTempDir);

}

else

...{

char sTempFileName[200];

sprintf(sTempFileName,"%s\%s",sDirName,sFoundFileName);

DeleteFile(sTempFileName);

}

}

}

tempFind.Close();

if(!RemoveDirectory(sDirName))

...{

return FALSE;

}

return TRUE;

}

/**//////////////////////////////////////////

//下面是应用,CString m_strDir 是一个文件夹路径,如:d:downloadpic

BOOL DelAll()

...{

if(PathFileExists(m_strDir))

DeleteDirectory((LPSTR)(LPCTSTR)m_strDir);

return 1;

}

No moudle named pgl.graph_kernel和缺少dll问题 图神经网络7日打卡营常见问题整理 安装版本问题: Paddle 版本:1.8.5 Python: 3.x,目前PGL暂不支持3.8 PGL安装:pip install pgl PGL github: https://github.com/PaddlePaddle/PGL 建议新建conda虚拟环境,注意设置好对应的python版本。 Paddle具体安装说明 7日图神经网络讨论区地址: https://aistudio.baidu.com/aistudio/education/group/info/195 阅读详情

相关推荐

c++ 删除指定的文件夹及其子文件夹

C++ 删除指定的文件夹及其子文件夹

weixin_43896283的博客 1541

C++删除目录,包括该目录下所有子目录和文件

void RemoveAllFiles(wstring wstrDir) { if (wstrDir.empty()) { return; } HANDLE hFind; WIN32_FIND_DATA findData; wstring wstrTempDir = wstrDir + (L"\\*.*");; hFind = FindFirstFile(wstrTempDir.c_str(), &findData); if (hFind == INVALID_HANDLE_V.

beibaoke910的专栏 1万+

c++删除某个路径下的所有文件(源代码和程序)

可将服务器运行多少时间日志或者图片内容进行删除,在ini文件可配置或者源代码中进行修改

VC++删除文件夹

使用SHFileOperation可以删除文件夹以及包含的子文件。头文件shlobj.h。

m0_60352504的博客 1072

Z-Image Turbo LoRA训练全流程:从数据标注到模型部署的保姆级指南(附ai-toolkit配置)

本文提供了一份详尽的Z-Image Turbo LoRA模型训练全流程指南,涵盖从数据准备、智能标注、参数调优到最终模型部署与Z-Image集成的每个环节。重点解析了使用ai-toolkit训练整合包进行高效训练的核心技巧与避坑方法,旨在帮助用户稳定训练出高质量的专属角色模型。

weixin_29088655的博客 963

两轮差速移动机器人运动分析、建模和控制

两轮差速运动分析及建模运动学分析三种运动状态分析函数模型仿真验证直线验证曲线验证旋转验证运动控制 运动学分析 运动特性为两轮差速驱动,其底部后方两个同构驱动轮的转动为其提供动力,前方的随动轮起支撑作用并不推动其运动,如图1两轮差速驱动示意图所示。 定义其左右驱动轮的中心分别为Wl和Wr,且对应线速度为Vl和Vr,该值可以通过电机驱动接口输出的角转速ωl,ωr2和驱动轮半径r求得,即: Vl=r⋅...

启小新的博客 8万+

C/C++文件目录操作

1、打开文件 FILE *fopen( const char * filename, const char * mode ); mode: r :打开一个已有的文本文件,允许读取文件。 w :打开一个文本文件,允许写入文件。如果文件不存在,则会创建一个新文件。 程序会从文件的开头写入内容。如果文件存在,则该会被截断为零长度,重新写入。 a :打开一个文本文件,以追加模...

O0o_Or_not的博客 1326

群晖NAS从入门到精通的所有帖子汇总,只要这一篇就够了

本站陆陆续续的转载、原创帖子也有十几二十篇了,从不同的角度对群晖NAS的各种骚操作都有深入的讲解,虽然很多文章都不是讲的很深入,但是针对小白入门已经是足够了,希望对小白来说是一个入门,群晖NAS的大佬们勿喷,哪里写的不对的,请随时留言西安SEO优化站长一定在第一时间纠正修改。

西安SEO优化网站资源 8万+

VS2019未能返回新代码元素,可能是语法错误

最近在写MFC的工程,在某次添加组件变量时,弹出提示框"未能返回新代码元素,可能是语法错误"。 检查了一遍没有语法错误,编译正常。 网上所说的,将ncb文件删除就可以解决,找了半天没找到这个后缀名的文件。后来发现他们的帖子的发表时间都很老了,当初VS的版本可能还是2012,新版本的VS出现这个问题已经不是这么处理了。 解决方法: 如上图所示,首先将你的文件夹属性改为显示隐藏文件,然后找到你的工程目录下的.vs文件夹,点进去后找到Browse.VC.db的数据库文件,然后删除它(记得先关闭你的工程,否则

机制蛋蛋的博客 5191

从零开始的计网学习——物理层

计算机网络对于IT人不论是就业还是升学都是核心的一门课程,一起从零开始,学习计算机网络!

Nimrod__的博客 2万+

PCL点云库入门(第6讲)——PCL库中Eigen数学工具库的基本使用(持续更新)

Eigen库是一个高性能的C++模板库,专注于线性代数、矩阵和向量运算,以及相关的数值分析和算法。在Eigen库中,所有的矩阵和向量均被视为矩阵模板类的实例。向量可以被看作是特殊形式的矩阵,具体表现为只包含1行或1列。

qq_36812406的博客 1753

vc 删除目录或文件与目录下文件

因为VC中没有删除非空目录的函数,所以要用以下方法来做: /*注意:路径字符串str的最后不要加'\' */ void DeleteDir(CString str) {  CFileFind finder; //文件查找类  CString strdel,strdir;//strdir:要删除的目录,strdel:要删除的文件  strdir=str+"\\*";//删除文件夹,先

Keivin 4068

【Segment Anything Model】十(1):利用SAM做分类任务,方法二,不放过SAM强大特征提取能力,将SAM提取到的ImageEmbedding插入到其他cnn网络中

直接黏贴复制就好'''该类定义了VGG-16的基本结构。features: 代表VGG网络的主体部分,即所有的卷积层和池化层。avgpool: 是自适应平均池化层,将特征图大小调整为7x7。classifier: 是VGG网络的分类部分,由全连接层组成。_initialize_weights(): 初始化权重的方法。

cvxiayixiao的博客 3562

VC6使用技巧

1:使用vc开发项目时,常会遇到这种情况: 即明明只改动了一个文件,却要把整个项目全部重新编译连接一次。刚刚连接好,一运行,又提示重新编译连接一次,非常讨厌。这是因为出现了未来文件的缘故。 解决方法: 找出对应文件夹下的debug目录,将未来文件全部delete, 再rebuild all一次。(未来 文件即其创建和修改时间都比系统时间靠后) 2:有时,workspace中的classview显示

技术交流 -- 学无止境,与时俱进 1408

Android 13.0 展讯平台关机充电动画横屏显示修改

在13.0的系统rom定制化开发中,在关于展讯平台的产品中,系统默认的充电动画是竖屏显示的,但是在像平板的产品中竖屏动画肯定不符合规范, 所以需要在平板TV产品中,充电动画同时也是需要修改为横屏显示的,接下来就来分析下充电动画的相关绘制流程,然后实现功能

安卓兼职framework和app工程师的博客 410

(代码可运行)半导体器件和工艺模拟 使用Silvaco设计构建NMOS并提取各项工艺及器件参数

win10。

qq_20388971的博客 110

MFC的使用技巧(如何彻底删除一个类)

很实用的快速解决问题的方法  1:使用vc开发项目时,常会遇到这种情况:      即明明只改动了一个文件,却要把整个项目全部重新编译连接一次。刚刚连接好,一运行,又提示重新编译连接一次,非常讨厌。这是因为出现了未来文件的缘故。      解决方法:      找出对应文件夹下的debug目录,将未来文件全部delete, 再rebuild all一次。(未来 文件即其创建和修改时

yangchuankai's blog 1046

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

VC遍历指定文件夹下的所有文件 及如何删除文件夹

项目中要使用删除文件的功能,于是找了找资料,总结了一些方法,其实都很简单的。希望对大家有帮助:常用文件函数:if(finder.IsDirectory()   &&   !finder.IsDots())   //如果是目录   {}IsDirectory()判断是否目录IsDots()) 判断是否为.或..在dos中说明每个目录下都有缺省的两个目录分别为"."和".."分别表示上一层目录和本层目录.因此当我们遍历目录树下的文件时要过滤掉这两个缺省目录。 每个文件夹都有下面两个特殊子文件夹: (1) . 表

nokianasty的专栏 5342

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

VC删除文件夹下所有文件的代码

//删除文件夹目录(非空)bool DeleteDirectory(char* sDirName) ...{     CFileFind tempFind;     char sTempFileFind[200] ;        sprintf(sTempFileFind,"%s/*.*",sDirName);     BOOL IsFinded = tempFind.FindFile(sTem

jiangxinyu的专栏 5083

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

vc删除、拷贝、移动文件夹及其文件

删除:void COperationDlg::OnDel2(CString m_strFileDictory) //参数就是目录的路径<br />{<br />if(m_strFileDictory.GetLength()==0)<br />{<br />::AfxMessageBox (“目录名非法!”,MB_OK|MB_ICONEXCLAMATION);<br />return;<br />}<br />char FromFileName[80]=”/0″;<br />strcpy(FromFileNa

mycaibo编程 1888

VS的VC项目转移过程中可以删除的文件

引子在项目开发过程中,总需要从一台电脑上转移代码到另一台电脑上,但是VS的项目动辄好几百M,而这些文件并不是都需要的。那么为了最小文件大小,又可以在另外一台电脑上顺利编译项目,需要携带或者说需要删除项目中的哪些文件呢?一个例子这里以我自己编写的一个VC项目为例,看看能删除哪些文件。现在先打开项目工程文件夹,查看项目工程文件夹的大小。可以看到,项目目前大小为119MB,让我们打开看看里面有哪些文件。

(ÒωÓױ) 8649

VC遍历文件夹,删除文件夹

以前也有用到过遍历文件夹的代码,一开始都不会用,只好在网上摘抄别人的。       但是现在随着自己对VC的逐渐熟悉,感觉很多代码慢慢的开始熟悉了。         之所以要写这段代码是因为自己平时写的小程序越来越多,每个project下的debug文件夹占的空间太大,      但其实这个目录由没必要存在,所以我就想写个自动删除每个project下的debug文件夹的小程序。

记录我的码农之路---小Ray 1281

VC 完全删除文件夹

项目中要使用删除文件的功能,于是找了找资料,总结了一些方法,其实都很简单的。希望对大家有帮助: 常用文件函数:   if(finder.IsDirectory()   &&   !finder.IsDots())   //如果是目录   {} IsDirectory()判断是否目录 IsDots()) 判断是否为.或.. 在dos中说明每个目录下都有缺省的两个目录分别为"."和"..

cainxxx027的专栏 472

关于VC中删除非空文件夹

要删除文件夹,我们可以用到SHFILEOPSTRUCT这种结构体,利用该结构体可以删除空文件夹和非空文件夹。 typedef struct _SHFILEOPSTRUCT{      HWND hwnd;      UINT wFunc;      LPCTSTR pFrom;      LPCTSTR pTo;      FILEOP_FLAGS fFlags;      BO

shushuidewoniu的专栏 783
上一篇: 常用排序算法专题—归并排序
下一篇: Java后端开发三年,你不得不了解的JVM
java1856905
博客等级 码龄8年 100粉丝 249原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值