精华内容
下载资源
问答
  • MFC 如何删除目录下的所有文件

    千次阅读 2015-06-12 10:08:35
    最经开发的时候要用到文件系统的一些函数,其中一个就是如何删除一个目录下的所有文件.  下面试代码,BOOL bRemoveDir 代表是否移除根目录,也就是传进去的目录,如果传进去的目录是移动磁盘的根目录,那么移除会...

     最经开发的时候要用到文件系统的一些函数,其中一个就是如何删除一个目录下的所有文件.

     下面试代码,BOOL bRemoveDir 代表是否移除根目录,也就是传进去的目录,如果传进去的目录是移动磁盘的根目录,那么移除会失败,要设置为FASLE.

     删除文件以及目录除了可以调用系统的快速格式化删除所有文件,

     我这种就是递归的找到每个文件,然后删除文件,移除目录。

    BOOL DeleteDirectory(CString DirName,BOOL bRemoveRootDir)
    
    
    {
    	
    	CFileFind tempFind;
    	CString csZRootDir;
    
    
    	csZRootDir.Format("%s\\*.*",DirName.GetBuffer(0));
    	
    	BOOL IsFinded=(BOOL)tempFind.FindFile(csZRootDir.GetBuffer(0));
    	
    	while(IsFinded)
    		
    	{
    		IsFinded=(BOOL)tempFind.FindNextFile();
    		
    		if(!tempFind.IsDots())
    			
    		{
    			CString csFileName;
    
    
    			csFileName.Format("%s",tempFind.GetFileName().GetBuffer(0));	
    			if(tempFind.IsDirectory())
    				
    			{
    				CString tmp;
    				tmp.Format("%s\\%s",DirName.GetBuffer(0),csFileName.GetBuffer(0));
    								
    				DeleteDirectory(tmp,TRUE);
    				
    			}
    			
    			else
    				
    			{
    				CString tmp;
    				tmp.Format("%s\\%s",DirName,csFileName.GetBuffer(0));
    				
    				DeleteFile(tmp.GetBuffer(0));
    				
    			}
    			
    		}
    		
    	}
    	
    	tempFind.Close();
    	if (bRemoveRootDir)
    	{
    		if(!RemoveDirectory(DirName))
    			
    		{
    			LogRecord(TRUE,_T("remove directory failed! %s \r\n"),DirName);
    			
    			return FALSE;	
    		}
    	}
     	
    	
    	return TRUE;
    	
    }

    展开全文
  • 如果你想删除目录,还有目录里面包含的其它目录和文件,我们可以使用递归删除,用到的就是...代码:下面我们去删除根目录下的 files 这个目录 ... 还有这个目录里面包含的文件还有其它的目录 ... 先获取到这个 fil...

    如果你想删除目录,还有目录里面包含的其它目录和文件,我们可以使用递归删除,用到的就是目录对象的 removeRecursively 这个方法。先用 getDirecotry 获取到想要删除的目录,然后再去调用这个目录的 removeRecursively 方法。

    代码:

    下面我们去删除掉根目录下的 files 这个目录 ... 还有这个目录里面包含的文件还有其它的目录 ... 先获取到这个 files 目录 ...

    获取成功以后,去调用这个目录对象的 removeRecursively 这个方法... 删除成功以后,在控制台上显示一个 删除成功 的信息 ..

    /* 递归删除 */

    fileSystem.root.getDirectory('files', {}, function (dirEntry) {

    dirEntry.removeRecursively(function () {

    console.log('删除成功!');

    }, onError);

    }, onError);

    预览

    保存 ... 回到浏览器 ... 刷新 ... 在控制台上会显示 删除成功 这个信息 ... 说明已经删除掉了 files 目录,还有它里面的所有的东西。

    展开全文
  • web 开发中我们可能会碰到需要将某个目录下的所有文件清空,但不删除这个目录下的子目录(当然也不会删除删除根目录)的情况。那么对于这种只删除文件而不删除目录的方法,你是如何处理的呢?下面博主将要和你...
  • shell 作为一门 linux 下...今天就来聊聊 linux 下一个常见的问题:如何避免误删目录。下文会详细的讲述不同的场景下误删目录,以及相应的解决方案。 1变量为空导致误删文件 base_path=/usr/sbin tmp_file=`cm...

    shell 作为一门 linux 下使用广泛的系统语言,语法简单,上手容易,但是想要用好,少犯错误,也不是那么容易的一件事,可谓虽是居家旅行之良药,但也是杀人灭口之利器~

    今天就来聊聊 linux 下一个常见的问题:如何避免误删目录。下文会详细的讲述不同的场景下误删目录,以及相应的解决方案。

     

    1  变量为空导致误删文件

    base_path=/usr/sbin
    tmp_file=`cmd_invalid`
    # rm -rf $base_path/$tmp_file
    

    <以上代码可复制粘贴,可往左滑>

    这种情况下如果 cmd 执行出错或者返回为空,后果将是灾难性的,那如何防范呢?

     

    (1)利用 shell 的变量扩展功能,如果变量为空赋给默认值或者抛出异常退出脚本:

    echo ${base_path:?var is empty}/${tmp_file:?var is empty}
    -bash: tmp_file: var is empty
    

    <以上代码可复制粘贴,可往左滑>

    (2)人肉判断变量是否为空:

    [[ ${tmp_file} == "" ]] && echo 1
    1[[ -z ${tmp_file} ]] && echo 1      
    1
    

    <以上代码可复制粘贴,可往左滑>

    (3)如果变量未定义还可以开启 set 选项

    # cat a.sh
    
    set -u 
    b=
    echo $b
    echo $a
    echo 1
    # bash a.sh
    
    a.sh: line 4: a: unbound variable
    

    <以上代码可复制粘贴,可往左滑>

     

    2  路径含有空格导致误删文件

    史上最经典的要数下面这个bumblebee项目了,这个项目本来不出名,不过,程序在其安装脚本install.sh里的一个bug让这个项目一下子成了全世界最瞩目的项目。

    那我们该如何防范这种问题呢?

    (1)良好的编程习惯:变量加引号防止扩展

    path="/usr/local /sbin"
    # rm -rf $path
    
    rm -rf "$path"
    

    <以上代码可复制粘贴,可往左滑>

    (2)对变量进行语义检查

    比如检测是否含有空格等特殊字符,不通用,不推荐这么做

     

    3  目录或文件含有特殊字符导致误删文件

    ll 
    总用量 8
    drwxrwxr-x 2 work work 4096 11月 24 18:57 '~'
    -rw-rw-r-- 1 work work   34 11月 24 19:49 a.sh
    # rm -rf ~
    

    <以上代码可复制粘贴,可往左滑>

    那我们该如何防范这种问题呢?

     

    (1)良好的编程习惯:变量加引号防止扩展

    rm -rf "~"
    

    <以上代码可复制粘贴,可往左滑>

    (2)如果不确定,删除之前 echo 或 find 一下,看变量被扩展成啥了

    echo rm -rf "~"
    rm -rf ~
    echo rm -rf ~ 
     rm -rf /home/work
    

    <以上代码可复制粘贴,可往左滑>

     

    4  cd 切换目录失败,导致文件被误删

    cd ooxx_path_not_exsit 
    rm -rf *.exe
    

    <以上代码可复制粘贴,可往左滑>

    恭喜这种情况下你的当前目录下匹配文件都会被误删,那我们该如何防范这种问题呢?

    (1)使用逻辑短路操作

    cd path && rm -rf *.exe
    

    <以上代码可复制粘贴,可往左滑>

    (2)检测 path 是否存在

    [[ -d ~ ]] && echo 1
    1
    

    <以上代码可复制粘贴,可往左滑>

     

    5  终极解决方案

     

    不要使用 root 操作系统资源,这样至少不会删除系统文件。

     

     

    6  在登录 shell 下使用友好的提示符

     

    友好的命令提示符能时刻提醒操作者当前在哪个路径下,避免错误的路径下操作文件。

     

     

    OK,本文到此就结束了,列举了一些常见的case和解决方案,希望能对大家有所启发

    展开全文
  • shell作为一门 linux 下使用广泛的系统语言...今天就来聊聊 linux 下一个常见的问题:如何避免误删目录。下文会详细的讲述不同的场景下误删目录,以及相应的解决方案。 1、变量为空导致误删文件 base_path=/usr/...

    shell作为一门 linux 下使用广泛的系统语言,语法简单,上手容易,但是想要用好,少犯错误,也不是那么容易的一件事,可谓虽是居家旅行之良药,但也是杀人灭口之利器~

    今天就来聊聊 linux 下一个常见的问题:如何避免误删目录。下文会详细的讲述不同的场景下误删目录,以及相应的解决方案。

    1、变量为空导致误删文件

    
    
    1. base_path=/usr/sbin 
    2. tmp_file=`cmd_invalid` 
    3. # rm -rf $base_path/$tmp_file 

    这种情况下如果 cmd 执行出错或者返回为空,后果将是灾难性的,那如何防范呢?

    (1)利用 shell 的变量扩展功能,如果变量为空赋给默认值或者抛出异常退出脚本:

    
    
    1. echo ${base_path:?var is empty}/${tmp_file:?var is empty}  
    2. -bash: tmp_file: var is empty 

    (2)人肉判断变量是否为空:

    
    
    1. [[ ${tmp_file} == "" ]] && echo 1 
    2. [[ -z ${tmp_file} ]] && echo 1 

    (3)如果变量未定义还可以开启 set 选项:

    
    
    1. # cat a.sh 
    2. set -u 
    3. b= 
    4. echo $b 
    5. echo $a 
    6. echo 1 
    7. # bash a.sh 
    8. a.sh: line 4: a: unbound variable 

    2、路径含有空格导致误删文件

    史上最经典的要数下面这个bumblebee项目了,这个项目本来不出名,不过,程序在其安装脚本install.sh里的一个bug让这个项目一下子成了全世界最瞩目的项目。

    那我们该如何防范这种问题呢?

    (1)良好的编程习惯:变量加引号防止扩展

    
    
    1. path="/usr/local /sbin"  
    2. # rm -rf $path  
    3. rm -rf "$path" 

    (2)对变量进行语义检查

    比如检测是否含有空格等特殊字符,不通用,不推荐这么做

    3、目录或文件含有特殊字符导致误删文件

    
    
    1. ll  
    2. 总用量 8  
    3. drwxrwxr-x 2 work work 4096 11月 24 18:57 '~'  
    4. -rw-rw-r-- 1 work work 34 11月 24 19:49 a.sh  
    5. # rm -rf ~ 

    那我们该如何防范这种问题呢?

    (1)良好的编程习惯:变量加引号防止扩展

    
    
    1. rm -rf "~" 

    (2)如果不确定,删除之前 echo 或 find 一下,看变量被扩展成啥了

    
    
    1. echo rm -rf "~"  
    2. rm -rf ~  
    3. echo rm -rf ~  
    4. rm -rf /home/work 

    4、cd 切换目录失败,导致文件被误删

    
    
    1. cd ooxx_path_not_exsit  
    2. rm -rf *.exe 

    恭喜这种情况下你的当前目录下匹配文件都会被误删,那我们该如何防范这种问题呢?

    (1)使用逻辑短路操作

    
    
    1. cd path && rm -rf *.exe 

    (2)检测 path 是否存在

    
    
    1. [[ -d ~ ]] && echo 1  

    5、终极解决方案

    不要使用 root 操作系统资源,这样至少不会删除系统文件。

    6、在登录 shell 下使用友好的提示符

    友好的命令提示符能时刻提醒操作者当前在哪个路径下,避免错误的路径下操作文件。

    OK,本文到此就结束了,列举了一些常见的case和解决方案,希望能对大家有所启发,如果有其他的 case 和建议也欢迎交流~





    本文作者:佚名
    来源:51CTO

    展开全文
  • 我搜索了一些文章 ...反复尝试后发现,只需要将网站根目录下的“index.html”和“info.html”文件删除或者改名,"index.php"如上述方法炮制即可,不需要".htaccess"文件。其实就这么简单…...
  • Linux下如何查询并删除文件 linux下的删除命令 rm -rf Filename 此命令是删除文件包括其子文件。一般需要加sudo才能执行。 linux下的查找命令 find / -name filename.txt /表示根目录,./表示当前目录,也可以使用...
  • 1.删除项目根目录下composer.lock文件 2.重新执行composer intall 完美解决,有没发现好神奇! 网路上还有另外一种就是在执行composer install时候添加忽略版本命令,但是我试了,并没有什么用! 此操作同时也...
  • 推送的时候忘记过滤.idea文件...进入根目录 cd growthPlan-backend-phone 切换分支 $ git checkout sprintV2.0_dev_20191229 查看目录文件 $ dir 删除.idea $ git rm -r --cached .idea 提交本地仓库 $ git com...
  • 在FTA32文件系统中,用Shift+Delete删除根目录文件或文件夹时,除把FAT中相关簇链清0,将文件目录项中将首字节改为E5外,还会目录项的中的起始始簇号的高二字节(偏移14、15两字节)改写为0。  如果...
  • 如何把新加的分区挂载到/根目录

    千次阅读 2018-03-28 11:28:42
    举例说明:新增磁盘的设备文件名为 /dev/vdb 大小为100GB。#fdisk -l 查看新增的的磁盘1、对新增磁盘进行分区#fdisk /dev/vdb按提示操作 p打印 n新增 d 删除 w操作生效 q退出操作后 w#partprobe 强制让内核重新找一...
  • 目录文件举例

    2016-08-16 12:05:27
    PHP如何操作目录与文件?...“/”表示当前工作目录,“../”表示Apache的文件根目录。文件夹前不指定位置,则默认在当前工作目录中查找。1.创建和删除目录使用mkdir()函数可以根据提供的目录名或目录的...
  • 如何彻底删除SVN中的文件和文件夹

    万次阅读 2016-05-12 10:39:54
    建立了一个svn库,以www文件夹作为根目录放在svn的trunk下(svn地址为https://192.168.0.13/svn/test/trunk,让其他人检出时,要给对方ip地址,加上trunk),然后右击www文件夹,导入,最后的效果竟然是www文件夹下的...
  • 在服务器上面执行脚本,需要删除某个目录下面的所有文件,执行rm -rf /dir/*,结果目录不知道咋了,已执行,服务器疯狂报错,感觉不对,立即把脚本停止,此时服务器已经不能执行任何命令 rm -rf $dir/* 此时应该是...
  • 1:如果是idea手误加入还没push过的文件可以直接ctrl+alt+z,还原就好了。 2:如果已经push过的,就需要用命令了,如下。...1:删除所有根目录文件夹下的pom.xml文件。 命令:git rm -r --cached ./*/po...
  • 删除ROOT中所有内容,将你的发布内容放在其下。在conf/catalina/localhost 中增加 ROOT.xml 文件,内容如下: reloadable="true" crossContext="true"> prefix="localhost_openreports_log." suffix=
  • 一般来说不会出现删除文件后...这里首先说明一下服务器的一些删除策略,由于Linux没有回收站功能,所以线上服务器上所有要删除文件都会先移动到系统/tmp目录下,然后定期清除/tmp目录下的数据。这个策略本身没有问
  • 删除命令:find . -type d -iname ".svn" -exec rm -rf {} \; 注意点:必须使用root账户登录进行删除操作,其他账户没有相应删除权限  最好在根目录运行,可删除所有".svn"文件夹
  • 1、给你的磁盘的每个分区用 DiskGenius 备份一下分区表,然后把备份文件放到每个分区根目录下面。可别小看这种大小只有几 KB 、扩展名为 .hdp 的备份文件,在某些时候,它完全就是你的救命钥匙! 2、善于利用各种...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 611
精华内容 244
关键字:

如何删除根目录文件