文件和目录

Linux 文件和目录 所有用户都可以执行用于修改用户密码的 passwd 命令,但用户密码保存在 /etc/shadow 文件中,默认权限是 000 即除了超级用户 root 外的所有用户都没有查看或编辑该文件的权限,所以对 passwd 命令加上SUID 权限位,则可让普通用户临时获得程序所有者的身份,即以 root 用户的身份将变更的密码信息写入到 shadow 文件中。读 (read) ,写 (write) ,执行 (execute )简写即为 (r,w,x) ,亦可用数字 (4,2,1) 表示。 阅读详情

#include
#include
#include
#include 
//////////////////////////////////////////////////////////////////////////
//判断目录或文件是否存在
bool IsFileDirExist(string path)
{
 if(_access(path.c_str(),0)!=-1)
 {
  //cout<<path.c_str()<<" exist!"<<endl;
  return true;
 }
 else
  return false;
}


////////////////////////////////////////////////////////////////////////////////////////
//说明:
//[1] windows下 参数为 "" 或 / 获得的目录是当前的盘符
//[2] 绝对路径中的/可以多个重复,windows识别为一个/ ;
//    如: DeleteFile("F://///here/////file.txt");等同于DeleteFile("F://here//file.txt");
//[3] 该函数删除指定目录下的所有文件,不递归删除子文件夹的内容
////////////////////////////////////////////////////////////////////////////////////////
bool DeleteFileInDir(string rootDir)
{  
 if (strcmp(rootDir.c_str(),"")==0
  ||strcmp(rootDir.c_str(),"//")==0) {
  cout<<"非法路径!"<<endl;
  return false;
 }
    WIN32_FIND_DATA fd;
    ZeroMemory(&fd, sizeof(WIN32_FIND_DATA)); 
 
    HANDLE hSearch; 
    string filePathName; 
    string tmpPath;  
 
    filePathName=rootDir;
 
    BOOL bSearchFinished = FALSE;
 
    if( filePathName.data()[filePathName.length()-1] != '//' )  
    {  
  filePathName+="//"; 
    }  
 
    filePathName+="*";
 
    hSearch = FindFirstFile(filePathName.c_str(), &fd);

 if (hSearch==INVALID_HANDLE_VALUE) {
  cout<<"Directory or file name is invalid!"<<endl;
  return false;
 }
 
    while( !bSearchFinished )  
    {  
  if( FindNextFile(hSearch, &fd) )   
  {   
   if( (fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)    
    && strcmp(fd.cFileName, ".") && strcmp(fd.cFileName, "..") )     
   { 
    tmpPath = rootDir;
    tmpPath+=fd.cFileName;
    cout<<tmpPath.c_str()<< " is a directory! Not deleted."<<endl;
   }    
   else if( strcmp(fd.cFileName, ".") && strcmp(fd.cFileName, "..") )    
   {
    tmpPath = rootDir;
    if (tmpPath.data()[tmpPath.length()-1]!='//') {
     tmpPath+="//";
    }
    tmpPath+=fd.cFileName;
    if (hSearch==INVALID_HANDLE_VALUE) {
     cout<<"Directory or file name is invalid!"<<endl;
     return false;
    }    
    if(DeleteFile(tmpPath.c_str()))
    {
     cout<<"File "<<tmpPath.c_str()<<" is deleted!"<<endl;
    }
    else
    {
     cout<<"File "<<tmpPath.c_str()<<" is not deleted!"<<endl;
     return false;
    }
   }   
  }  
  else   
  {   
   if( GetLastError() == ERROR_NO_MORE_FILES )          //Normal Finished    
   {    
    bSearchFinished = TRUE;    
   }
   else    
    bSearchFinished = TRUE;     //Terminate Search   
  }  
    } 
    FindClose(hSearch);
 return true;
}


////////////////////////////////////////////////////////////////////////////////////////
//说明:
//[1] windows下 参数为 "" 或 / 获得的目录是当前的盘符
//[2] 绝对路径中的/可以多个重复,windows识别为一个/ ;
//    如: DeleteFile("F://///here/////file.txt");等同于DeleteFile("F://here//file.txt");
//[3] 该函数删除指定目录下的所有文件,并递归删除子文件夹的内容
////////////////////////////////////////////////////////////////////////////////////////
bool DeleteFileDir(string rootDir)
{  
 if (strcmp(rootDir.c_str(),"")==0
  ||strcmp(rootDir.c_str(),"//")==0) {
  cout<<"非法路径!"<<endl;
  return false;
 }
    WIN32_FIND_DATA fd;
    ZeroMemory(&fd, sizeof(WIN32_FIND_DATA)); 
 
    HANDLE hSearch; 
    string filePathName; 
    string tmpPath;  
 
    filePathName=rootDir;
 
    BOOL bSearchFinished = FALSE;
 
    if( filePathName.data()[filePathName.length()-1] != '//' )  
    {  
  filePathName+="//"; 
    }  
 
    filePathName+="*";
 
    hSearch = FindFirstFile(filePathName.c_str(), &fd);
 
 if (hSearch==INVALID_HANDLE_VALUE) {
  cout<<"Directory or file name is invalid!"<<endl;
  return false;
 }
 
    while( !bSearchFinished )  
    {  
  if( FindNextFile(hSearch, &fd) )   
  {   
   if( (fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)    
    && strcmp(fd.cFileName, ".") && strcmp(fd.cFileName, "..") )     
   { 
    tmpPath = rootDir;
    tmpPath+=fd.cFileName;
    //cout<<tmpPath.c_str()<< " is a directory! Not deleted."<<endl;
    if(!DeleteFileDir(tmpPath))
    {
     cout<<"Delete "<<tmpPath.c_str()<<" failed!"<<endl;
     return false;
    }
    if(rmdir(tmpPath.c_str())==0)
    {
     cout<<"Directory "<<tmpPath.c_str()<<" is deleted!"<<endl;
    }
   }    
   else if( strcmp(fd.cFileName, ".") && strcmp(fd.cFileName, "..") )    
   {
    tmpPath = rootDir;
    if (tmpPath.data()[tmpPath.length()-1]!='//') {
     tmpPath+="//";
    }
    tmpPath+=fd.cFileName;
    if (hSearch==INVALID_HANDLE_VALUE) {
     cout<<"Directory or file name is invalid!"<<endl;
     return false;
    }    
    if(DeleteFile(tmpPath.c_str()))
    {
     cout<<"File "<<tmpPath.c_str()<<" is deleted!"<<endl;
    }
    else
    {
     cout<<"File "<<tmpPath.c_str()<<" is not deleted!"<<endl;
     return false;
    }
   }   
  }  
  else   
  {   
   if( GetLastError() == ERROR_NO_MORE_FILES )          //Normal Finished    
   {    
    bSearchFinished = TRUE;    
   }
   else    
    bSearchFinished = TRUE;     //Terminate Search   
  }  
    } 
    FindClose(hSearch);
 return true;
}

////////////////////////////////////////////////////////////////////////////////////////
//说明:
//[1] windows下 参数为 "" 或 / 获得的目录是当前的盘符
//[2] 绝对路径中的/可以多个重复,windows识别为一个/ ;
//    如: CopyFile("F://///here/////file.txt","I:////");等同于CopyFile("F://here//file.txt","I://");
//[3] 该函数拷贝指定目录下的所有文件到指定目标目录, 不递归拷贝子文件夹的内容
//[4] fileType : *.* , *.txt , *.doc 等等形式
////////////////////////////////////////////////////////////////////////////////////////
bool CopyFileInDir(string rootDir,string destDir,string fileType)
{
 if (strcmp(rootDir.c_str(),"")==0
  ||strcmp(rootDir.c_str(),"//")==0) {
  cout<<"非法源路径!"<<endl;
  return false;
 }

 if (strcmp(destDir.c_str(),"")==0
  ||strcmp(destDir.c_str(),"//")==0) {
  cout<<"非法目标路径!"<<endl;
  return false;
 }
 
 if (!IsFileDirExist(destDir)) {
  CreateDirectory(destDir.c_str(),NULL);
 }
    
    WIN32_FIND_DATA fd; 
    ZeroMemory(&fd, sizeof(WIN32_FIND_DATA)); 
 
    HANDLE hSearch; 
    string filePathName; 
    string tmpPath; 
 string tmpDestPath;
     
    filePathName=rootDir; 
 
    BOOL bSearchFinished = FALSE; 
 
    if( filePathName.data()[filePathName.length()-1] != '//' )  
    {  
  filePathName+="//";
    }
 
    filePathName+= fileType; 
    hSearch = FindFirstFile(filePathName.c_str(), &fd);

 if (hSearch==INVALID_HANDLE_VALUE) {
  cout<<"无效文件名"<<endl;
  return false;
 }
 
    while( !bSearchFinished )  
    {  
  if( FindNextFile(hSearch, &fd) )   
  {   
   if( (fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)    
    && strcmp(fd.cFileName, ".") && strcmp(fd.cFileName, "..") )     
   {    
    tmpPath = rootDir;
    if( tmpPath.data()[tmpPath.length() -1] != '//' )  
    {  
     tmpPath+="//";  
    }
    tmpPath+= fd.cFileName;
    cout<<tmpPath.c_str()<<" is a directory!"<<endl;    
   }    
   else if( strcmp(fd.cFileName, ".") && strcmp(fd.cFileName, "..") )    
   {    
    tmpPath = rootDir;
    if( tmpPath.data()[tmpPath.length() -1] != '//' )  
    {  
     tmpPath+="//";  
    }
    tmpPath+= fd.cFileName;    
    tmpDestPath = destDir; 
    if( tmpDestPath.data()[tmpDestPath.length() -1] != '//' )  
    {  
     tmpDestPath+= "//";  
    }   
    tmpDestPath+=fd.cFileName;    
    if(CopyFile(tmpPath.c_str(),tmpDestPath.c_str(),FALSE))
     cout<<"Copy file From "<<tmpPath.c_str()<<" To "
     <<tmpDestPath.c_str()<<" successfully!"<<endl;
    else
     return false;
   }   
  }  
  else   
  {   
   if( GetLastError() == ERROR_NO_MORE_FILES )          //Normal Finished    
   {    
    bSearchFinished = TRUE;    
   }
   else    
    bSearchFinished = TRUE;     //Terminate Search   
  }  
    } 
    FindClose(hSearch); 
 return true;
}

////////////////////////////////////////////////////////////////////////////////////////
//说明:
//[1] windows下 参数为 "" 或 / 获得的目录是当前的盘符
//[2] 绝对路径中的/可以多个重复,windows识别为一个/ ;
//    如: CopyFile("F://///here/////file.txt","I:////");等同于CopyFile("F://here//file.txt","I://");
//[3] 该函数拷贝指定目录下的所有文件,并递归拷贝子文件夹的内容到指定目标目录
//[4] fileType : *.* , *.txt , *.doc 等等形式
////////////////////////////////////////////////////////////////////////////////////////
bool CopyFileDir(string rootDir,string destDir,string fileType)
{
 if (strcmp(rootDir.c_str(),"")==0
  ||strcmp(rootDir.c_str(),"//")==0) {
  cout<<"非法源路径!"<<endl;
  return false;
 }

 if (strcmp(destDir.c_str(),"")==0
  ||strcmp(destDir.c_str(),"//")==0) {
  cout<<"非法目标路径!"<<endl;
  return false;
 }
 if (!IsFileDirExist(destDir)) {
  if(CreateDirectory(destDir.c_str(),NULL))
  {
   cout<<"Create Directory "<<destDir.c_str()<<endl;
  }
 } 
    
    WIN32_FIND_DATA fd; 
    ZeroMemory(&fd, sizeof(WIN32_FIND_DATA)); 
 
    HANDLE hSearch; 
    string filePathName; 
    string tmpPath; 
 string tmpDestPath;
     
    filePathName=rootDir; 
 
    BOOL bSearchFinished = FALSE; 
 
    if( filePathName.data()[filePathName.length()-1] != '//' )  
    {  
  filePathName+="//";
    }
 
    filePathName+= fileType; 
    hSearch = FindFirstFile(filePathName.c_str(), &fd);

 if (hSearch==INVALID_HANDLE_VALUE) {
  cout<<"无效文件名"<<endl;
  return false;
 }
 
    while( !bSearchFinished )  
    {  
  if( FindNextFile(hSearch, &fd) )   
  {   
   if( (fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)    
    && strcmp(fd.cFileName, ".") && strcmp(fd.cFileName, "..") )     
   {    
    tmpPath = rootDir;
    if( tmpPath.data()[tmpPath.length() -1] != '//' )  
    {  
     tmpPath+="//";  
    }
    tmpPath+= fd.cFileName;    
    tmpDestPath = destDir; 
    if( tmpDestPath.data()[tmpDestPath.length() -1] != '//' )  
    {  
     tmpDestPath+= "//";  
    }   
    tmpDestPath+=fd.cFileName;        
    if(!CopyFileDir(tmpPath,tmpDestPath,fileType))
    {
     return false;
    }
   }    
   else if( strcmp(fd.cFileName, ".") && strcmp(fd.cFileName, "..") )    
   {    
    tmpPath = rootDir;
    if( tmpPath.data()[tmpPath.length() -1] != '//' )  
    {  
     tmpPath+="//";  
    }
    tmpPath+= fd.cFileName;    
    tmpDestPath = destDir; 
    if( tmpDestPath.data()[tmpDestPath.length() -1] != '//' )  
    {  
     tmpDestPath+= "//";  
    }   
    tmpDestPath+=fd.cFileName;    
    if(CopyFile(tmpPath.c_str(),tmpDestPath.c_str(),FALSE))
     cout<<"Copy file From "<<tmpPath.c_str()<<" To "
     <<tmpDestPath.c_str()<<" successfully!"<<endl;
    else
     return false;
   }   
  }  
  else   
  {   
   if( GetLastError() == ERROR_NO_MORE_FILES )          //Normal Finished    
   {    
    bSearchFinished = TRUE;    
   }
   else    
    bSearchFinished = TRUE;     //Terminate Search   
  }  
    } 
    FindClose(hSearch); 
 return true;
}

Linux 复制目录和文件 Linux 复制目录和文件及命令详解 阅读详情

相关推荐

python os文件和目录

os 模块提供了丰富的功能来操作文件和目录:os.getcwd() 和 os.chdir() 用于获取和更改当前工作目录。os.listdir() 列出目录内容,os.mkdir() 和 os.makedirs() 创建目录,os.rmdir() 删除空目录。os.path.exists(), os.path.isfile(), os.path.isdir() 用于检查路径是否存在以及它是文件还是目录。

df2463731436的博客 883

c/c++开发,无可避免的文件访问开发案例

c/c++开发,无可避免的文件访问开发案例,基于标准的C库函数fopen, fclose, fread, fwrite, fgetc, fgets等系列函数,创建文件IO模块,实现对文件的读写、行内容读写、行内容分割,以及文件目录及文件名的创建、删除、重命名、检查等IO功能,通过示例代码展示了文件IO模块的应用

技术需要分享 906

告别盲打:为NXOpen Python API生成智能代码提示的完整指南

本文提供了一份为NXOpen Python API生成智能代码提示的完整指南。通过配置匹配的Python环境、利用类型存根文件生成工具创建.pyi文件,并在PyCharm或VSCode中正确配置,开发者可以彻底告别“盲打”,获得精准的代码补全和参数提示,从而大幅提升NX二次开发的效率和体验。

weixin_29057695的博客 371

linux下有_access函数,linux--access函数与mkdir函数

access函数与mkdir函数这两个函数在往本地存储数据创建新的文件夹时用到std::string file_path1 = "./image_data/front_middle/" + std::to_string(time_stamp_) + ".jpg";if(access(file_path1,0)==-1) // this dir is not exist .if(mkdir(fil...

weixin_35974411的博客 333

从零开始:使用Python实现基于深度强化学习的柔性车间调度系统

本文详细介绍了如何使用Python和深度强化学习(DRL)构建柔性车间调度系统,特别关注图神经网络(GNN)与近端策略优化(PPO)算法的结合应用。通过实战指南,读者将学习从环境准备、异构图构建到PPO算法实现的全流程,最终实现生产效率的显著提升。

weixin_29074295的博客 244

MODBUS通讯不求人:手把手教你用三菱FX2N控制士林变频器

本文详细介绍了如何使用三菱FX2N PLC通过MODBUS协议控制士林变频器,涵盖硬件连接、参数配置、程序设计及通讯优化等关键步骤。特别针对没有内置MODBUS函数块的老款PLC,提供了CRC校验和稳定数据交换的实用解决方案,帮助工程师快速实现工业自动化设备的高效通讯。

v4w5x6的博客 226

C++中的_access函数 使用案例-查找并创建目录

头文件:<io.h> 函数原型:int _access(const char *pathname, int mode); 参数:pathname 为文件路径或目录路径 mode 为访问权限(在不同系统中可能用不能的宏定义重新定义) 返回值:如果文件具有指定的访问权限,则函数返回0;如果文件不存在或者不能访问指定的权限,则返回-1. 备注:当pathname为文件时,_access函数...

flying_ant2018的博客 1517

光电容积脉搏波PPG信号分析笔记

脉搏波信号PPG分析笔记

teresa_zp的专栏 6476

_access()函数的使用

int _access(char* path,int mode) 头文件 功能:确定文件或文件夹的访问权限。如果指定的存取方式有效,则函数返回0,否则函数返回-1。 参数path 是访问文件所在的路径名,mode是访问判断模式, 具体含义如下:   R_OK 只判断是否有读权限   W_OK 只判断是否有写权限   X_OK 判断是否有执行权限

yyangzhenjie的博客 2万+

通达信强龙趋势幅图指标 - 精准捕捉趋势,把握强势行情,多角度分析个股,强弱一目了然

STICKLINE(趋势>0 AND SJTJ,4.8,5.8,1.5,0),COLORYELLOW;STICKLINE(资金>0 AND SJTJ,1.2,2.2,1.5,0),COLOR0080FF;STICKLINE(异动>0 AND SJTJ,0,1,1.5,0),COLORFF0080;STICKLINE(异动=0 AND SJTJ,0,1,1.5,1),COLORGRAY;

Q1809330692的博客 5623

智联招聘Python岗位数据采集:基于API请求的校园招聘信息爬取实战

本项目开发了一个智联招聘Python岗位校园招聘数据采集系统,采用requests库直接调用API接口获取结构化数据。系统通过分析API接口结构,配置完整的请求头、Cookie和身份验证参数,实现了10页数据的批量采集。采集内容包括工作名称、薪资范围、企业信息等10个关键字段,并存储为Excel格式。项目严格遵守网络爬虫规范,合理控制请求频率,数据仅用于技术学习和就业分析。技术实现涉及API逆向工程、JSON数据处理、防御性编程等核心技能,为学生职业规划和教育机构教学改革提供数据支持。

那些看似不起波澜的日复一日,会在某天让你看到坚持的意义 625

c/c++ 读/写文件

利用c++的stream类 头文件:#include &lt;fstream&gt; 1.读文件 string strRes; string strPath = “/opt/test/test.txt”; if (access(strPath .c_str(), 0) == 0)  //如果路径存在 {      ifstream ifFile(strPath .c_str()); ...

u012076529的专栏 349

RTK_ROS_导航(4):接入move_base

现在我们要将之前的数据接入到Move_base中,使得机器人能够根据Map上的终点进行导航,并且实现避障效果如下图。

旋风小短腿 1946

CentOS文件和目录命令

CentOS文件管理命令:pwd查看当前目录,ls列出内容,cd切换目录,mkdir创建目录,rm删除文件或目录,cp复制,mv移动或重命名,touch创建文件,cat和less查看文件内容,find搜索,du和df检查磁盘使用,chmod改权限,chown改所有者,ln创建链接,tar打包解压,scp远程传输。

WenZhang的博客 2541

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

OV9734 DATASHEET,完整规格书

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

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万+

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Linux 目录和文件管理

查看文件内容(cat、more、less、head、tail)统计和检索文件内容(wc、grep)备份恢复文档(gzip/gunzip、bzip2/bunzip2、tar)vi文本编辑器工作模式与不同工作模式之间的切换vi文本编辑器命令模式与末行模式的基本操作。

2501_93012470的博客 1168

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Linux目录和文件——管理目录和文件的命令

Linux目录和文件——管理目录和文件的命令 摘要:本文主要学习了Linux系统中关于目录和文件的操作。 cd命令 cd命令用来切换工作目录,是Change Directory的缩写。 基本语法 1 [root@localhost ~]# cd 相对路径或绝对路径 特殊符号 1 ~:代表当前登录用户的主目录。 2 ~用户名:表示切换至指定用户的主目录。 3 -:代表上...

weixin_30352645的博客 183

目录和文件管理

目录和文件管理 实验目的:熟练掌握目录和文件管理实验要求: 登录系统后查看所在的路径,然后进入到 /tmp/ 目录中,创建benets1 和 benets2 两个目录 在 benets1和benets2目录里面各创建一个空文件student; 在 /home/ 目录下创建一个teacher的目录 将benets1复制到teacher/目录下,将benets2移动到teacher/目录下 进到 /...

weixin_34290352的博客 182

Linux的目录和文件

在终端执行下面命令,得到如下图所示打印,显示的是当前Linux操作系统根目录下的所有目录ls /目录名描述Linux文件系统根目录/bin存放系统中供普通用户使用的常用命令(如lscp等),命令本质是可执行文件,系统启动时会加载这些命令供用户调用/boot存储系统启动相关文件,包括内核文件(vmlinuz)、引导加载程序(如grub相关文件),是系统启动的核心目录/cdrom传统用于挂载光驱(CD/DVD)的目录,现代系统中使用频率较低,部分发行版可能用media替代光驱挂载功能/dev。

weixin_ysc18398079698的博客 854

linux文件和目录区别,文件和目录,目录与文件夹的区别

文件和目录,目录与文件夹的区别目录1. 文件类型2. 文件访问权限access函数umask函数chmod函数3. 符号链接4. 文件与目录操作删除文件创建目录删除目录读目录1. 文件类型Linux下一切皆文件,但文件也分为7种类型,文件类型信息包含在struct stat结构的st_mode成员中,可以用下表中的宏来检测文件类型,这些宏的参数都是stat.st_mode。文件类型说 明普通文件最...

weixin_42366752的博客 5360

文件和目录的常见命令

Command: 命令名称[ ] 表示可选项[-options] : 命令选项, 可有可无[Parameter]: 命令参数。

JennyXi2001的博客 1205

文件目录和目录文件的作用区别和联系 & C语言文件相关操作 FILE用法

一.文件目录和目录文件的作用区别和联系 1.他们各自的概念和联系 文件目录:把所有的FCB组织在一起,就构成了文件目录,即文件控制块的有序集合 **FCB:**为了能对一个文件进行正确的存取,操作系统必须为文件设置用于描述和控制文件的数据结构,称之为“文件控制块(FCB)”。 **目录文件:**为了实现对文件目录的管理,通常将文件目录以文件的形式保持在外存,这个文件就叫目录文件。 二:C语言为什么要先open打开文件, 最后close关闭文件,为什么不直接read+文件名读文件 首先我们要先了解文件指针 文

正月看雪花的博客 8653

文件和目录 

cd /home 进入 '/ home' 目录'cd .. 返回上一级目录cd ../.. 返回上两级目录cd 进入个人的主目录cd ~user1 进入个人的主目录cd - 返回上次所在的目录pwd 显示工作路径ls 查看目录中的文件ls -F 查看目录中的文件ls -l 显示文件和目录的详细资料ls -a 显示隐藏文件ls *[0-9]* 显示包含数字的文件名和目录名tree 显示文件和目录由根目录开始的树形结构(1)lstree 显示文件和目录由根目录开始的树形结构(2)mk...

qq_41141896的博客 880

删除该目录下所有的文件和目录

题目 删除该目录下所有的文件和目录 分析 可以使用递归来进行删除,每一次调用递归都删除其里边的文件,当递归回调的时候删除那些已经被删空的文件夹 程序代码 package com.company.demo; import java.io.File; public class Test { public static void main(String[] args) { F...

weixin_45849948的博客 1012
上一篇: Pro*C/C++ windows编程
下一篇: 任意进制数之间的转换
KevenJava
博客等级 码龄24年 5粉丝 30原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值