C++ 创建文件夹和删除文件夹
1、DOS命令方式
string save_as = "C:\\xxx\\xxx";//创建文件夹
string command;
command = "mkdir " + save_as;
system(command.c_str());//删除文件夹
command.clear();
command = "rd /s /q " + save_as;
system(command.c_str());
要点分析:这种方式基于DOS窗口执行DOS命令实现,简单、灵活,可以创建多级文件夹 | 删除非空文件夹,也可以根据不同业务需求,换成不同的DOS命令。同时,如果DOS窗口不存在,或者程序异常导致窗口关闭,则无法执行命令,也就无法创建 | 删除文件夹,并且如果大量执行DOS指令也可能导致DOS窗口关闭。
2、API函数方式
#include <direct.h>...string dir= "C:\\xxx";//创建文件夹
mkdir(dir.c_str());//删除文件夹
rmdir(dir.c_str());
#include <Windows.h>...string dir= "C:\\xxx";//创建文件夹
CreateDirectory(dir.c_str(), NULL);//删除文件夹
RemoveDirectory(dir.c_str());
要点分析:正确引入头文件,实现简单;但只能创建一级文件夹 | 删除空文件夹。
3、多级文件夹实现方式
#include "windows.h"
#include <iostream>
#include <io.h>
#include <direct.h>bool createDirectory(std::string folder)
{std::string folder_builder;std::string sub;sub.reserve(folder.size());for (auto it = folder.begin(); it != folder.end(); ++it) {//cout << *(folder.end()-1) << endl;const char c = *it;sub.push_back(c);if (c == PATH_DELIMITER || it == folder.end() - 1) {folder_builder.append(sub);if (0 != ::_access(folder_builder.c_str(), 0)) {// this folder not existif (0 != ::_mkdir(folder_builder.c_str())) {// create failedreturn false;}}sub.clear();}}return true;
}
#include "windows.h"
#include <iostream>
#include <io.h>
#include <direct.h>
using namespace std;bool deleteDirectory(CString DirName)
{CString PUBPATH;PUBPATH = DirName;CFileFind tempFind;DirName += "\\*.*";BOOL IsFinded = (BOOL)tempFind.FindFile(DirName);//cout << IsFinded <<endl;while (IsFinded){IsFinded = (BOOL)tempFind.FindNextFile();if (!tempFind.IsDots()){CString strDirName;strDirName += PUBPATH;strDirName += "\\";strDirName += tempFind.GetFileName();if (tempFind.IsDirectory()){deleteDirectory(strDirName);}else{SetFileAttributes(strDirName, FILE_ATTRIBUTE_NORMAL); //去掉文件的系统隐藏属性DeleteFile(strDirName);}}}tempFind.Close();if (!RemoveDirectory(PUBPATH)){return false;}return true;
}
要点分析:可以创建多级文件夹 | 删除非空文件夹。
C++ 创建文件夹和删除文件夹相关推荐
- ubuntu创建文件夹和删除文件
创建 名为docker的文件夹 : ubuntu创建文件夹mkdir name mkdir docker 删除 名为docker的文件夹 : ubuntu删除文件rm name rm docker
- java : enum、创建文件和文件夹、删除文件和文件夹、获得项目绝对路径、写入数据到excel中、java代码中两种路径符号写法、读取、写入text文件...
java : enum http://www.cnblogs.com/hyl8218/p/5088287.html 创建文件和文件夹.删除文件和文件夹 http://www.cnblogs.com/m ...
- java目录实用工具_JAVA 创建文件和文件夹,删除文件和文件夹的实用工具
package com.file; import java.io.File; import java.io.IOException; //创建新文件和目录 public class CCRDFile ...
- JAVA 创建文件和文件夹,删除文件和文件夹,复制文件和文件夹,移动文件和文件夹的实用工具类
import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io ...
- 批处理bat实现创建、复制、删除文件及文件夹
1 建bat文件自动执行复制,删除命令. 例1:以下是复制cd.dll文件至windows\system32的bat文件内容: copy cd.dll %windir%\system32 例2:下面一 ...
- u盘复制文件第二台计算机无文件夹,电脑上的文件不能复制到U盘,U盘不能创建文件夹及删除文件...
电脑上的文件不能复制到U盘,U盘不能创建文件夹及删除文件 计算机基础知识 知识宝库 2013-8-3 6606 0评论 最好查一下电脑被设置的什么保护,该怎样解开 你确认一下, ...
- Windows命令行创建文件,文件夹,删除文件,文件夹命令
创建文件夹命令: md 文件夹名字或者mkdir 文件夹名字 删除文件夹命令: rd删除空文件夹,rd /s /q 删除有子文件夹和子文件的文件夹 创建文件命令: type nul >*.* ...
- linux里创建文件夹、创建文件夹子文件夹、删除文件夹和文件、访问指定目录级返回上一级目录
1.新建文件夹 2.删除文件 3.访问目录 一.新建文件夹 mkdir 命令是 make directories 的缩写,用于创建新目录,此命令所有用户都可以使用. 1.mkdir xxx:创建文件夹 ...
- java 中io的删除文件_总结删除文件或文件夹的7种方法-JAVA IO基础总结第4篇
本文是Java IO总结系列篇的第4篇,前篇的访问地址如下: 如果您阅读完成,觉得此文对您有帮助,请给我点个赞,您的支持是我不竭的创作动力. 为了方便大家理解,我特意制作了本文对应的视频:总结删除文件 ...
- android 文件 删除文件夹,android 删除文件以及递归删除文件夹
Python之文件处理-递归删除特定文件 #!/usr/bin/env python # -*- coding:utf-8 -*- import os def delete_particular_fi ...
最新文章
- 单链表中一个插入操作的分析
- SAP VC销售订单中可配置物料的使用
- qrcode——js生成二维码
- Python 3基础教程32-正则
- Spring5参考指南:AOP代理
- 为mysql cluster添加sql节点
- OC(Open collector) 集电极开路
- python遗传算法有多慢_遗传算法框架GAFT优化小记
- Matlab学习记录 1
- 安卓开发要学多久_开发微信小程序需要多久?流程有哪些?
- 中达优控触摸屏编程视频教程_中达优控触摸屏编程软件下载
- 一篇写给从未编程过的人的入门教程
- matlab有限元分析教程,Matlab做有限元分析
- cad文字递增快捷键_cad文字修改快捷键是什么,Auto CAD文字修改快捷键是什么?
- 转载:图像噪声的成因分类与常见图像去噪算法简介
- 天下足球 2016年欧洲杯 化茧成蝶 文案整理
- 辟邪剑法之字符串常用API
- 透明Png黑白图片上色(重新着色、改变成指定颜色)
- B. Cat Cycle
- Excel - 如何在 Excel 表格的一个单元格内换行?