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++ 创建文件夹和删除文件夹相关推荐

  1. ubuntu创建文件夹和删除文件

    创建 名为docker的文件夹 : ubuntu创建文件夹mkdir name mkdir docker 删除 名为docker的文件夹 : ubuntu删除文件rm name rm docker

  2. java : enum、创建文件和文件夹、删除文件和文件夹、获得项目绝对路径、写入数据到excel中、java代码中两种路径符号写法、读取、写入text文件...

    java : enum http://www.cnblogs.com/hyl8218/p/5088287.html 创建文件和文件夹.删除文件和文件夹 http://www.cnblogs.com/m ...

  3. java目录实用工具_JAVA 创建文件和文件夹,删除文件和文件夹的实用工具

    package com.file; import java.io.File; import java.io.IOException; //创建新文件和目录 public class CCRDFile ...

  4. JAVA 创建文件和文件夹,删除文件和文件夹,复制文件和文件夹,移动文件和文件夹的实用工具类

    import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io ...

  5. 批处理bat实现创建、复制、删除文件及文件夹

    1 建bat文件自动执行复制,删除命令. 例1:以下是复制cd.dll文件至windows\system32的bat文件内容: copy cd.dll %windir%\system32 例2:下面一 ...

  6. u盘复制文件第二台计算机无文件夹,电脑上的文件不能复制到U盘,U盘不能创建文件夹及删除文件...

    电脑上的文件不能复制到U盘,U盘不能创建文件夹及删除文件 计算机基础知识    知识宝库    2013-8-3    6606    0评论 最好查一下电脑被设置的什么保护,该怎样解开 你确认一下, ...

  7. Windows命令行创建文件,文件夹,删除文件,文件夹命令

    创建文件夹命令: md 文件夹名字或者mkdir 文件夹名字 删除文件夹命令: rd删除空文件夹,rd  /s /q 删除有子文件夹和子文件的文件夹 创建文件命令: type nul >*.* ...

  8. linux里创建文件夹、创建文件夹子文件夹、删除文件夹和文件、访问指定目录级返回上一级目录

    1.新建文件夹 2.删除文件 3.访问目录 一.新建文件夹 mkdir 命令是 make directories 的缩写,用于创建新目录,此命令所有用户都可以使用. 1.mkdir xxx:创建文件夹 ...

  9. java 中io的删除文件_总结删除文件或文件夹的7种方法-JAVA IO基础总结第4篇

    本文是Java IO总结系列篇的第4篇,前篇的访问地址如下: 如果您阅读完成,觉得此文对您有帮助,请给我点个赞,您的支持是我不竭的创作动力. 为了方便大家理解,我特意制作了本文对应的视频:总结删除文件 ...

  10. android 文件 删除文件夹,android 删除文件以及递归删除文件夹

    Python之文件处理-递归删除特定文件 #!/usr/bin/env python # -*- coding:utf-8 -*- import os def delete_particular_fi ...

最新文章

  1. 单链表中一个插入操作的分析
  2. SAP VC销售订单中可配置物料的使用
  3. qrcode——js生成二维码
  4. Python 3基础教程32-正则
  5. Spring5参考指南:AOP代理
  6. 为mysql cluster添加sql节点
  7. OC(Open collector) 集电极开路
  8. python遗传算法有多慢_遗传算法框架GAFT优化小记
  9. Matlab学习记录 1
  10. 安卓开发要学多久_开发微信小程序需要多久?流程有哪些?
  11. 中达优控触摸屏编程视频教程_中达优控触摸屏编程软件下载
  12. 一篇写给从未编程过的人的入门教程
  13. matlab有限元分析教程,Matlab做有限元分析
  14. cad文字递增快捷键_cad文字修改快捷键是什么,Auto CAD文字修改快捷键是什么?
  15. 转载:图像噪声的成因分类与常见图像去噪算法简介
  16. 天下足球 2016年欧洲杯 化茧成蝶 文案整理
  17. 辟邪剑法之字符串常用API
  18. 透明Png黑白图片上色(重新着色、改变成指定颜色)
  19. B. Cat Cycle
  20. Excel - 如何在 Excel 表格的一个单元格内换行?

热门文章

  1. 职业路线:前端工程师的晋升逻辑到底是什么
  2. 百度抛“彩蛋”:移动搜索开启傻瓜模式
  3. 微博、博客、qq(IM)区别与联系
  4. spring 源码阅读笔记-从浅到深的解析
  5. vue脚手架基本使用
  6. MySQL中存储过程使用详解
  7. qt quick从Windows放到Linux上运行
  8. python html转pdf出现乱码_HTML转PDF神器:WeasyPrint
  9. aliyun-java-vod-upload引入失败解决
  10. 机房如何做防雷接地?