Node.js之删除文件夹(含递归删除)

应用场景:比如像Eclipse这样的IDE,右击项目,出现选项,点击选项中的删除,就可以删除这个项目及其下的子目录包含文件(使用electron开发的桌面端项目多少都会用到)。

核心代码如下:

    /**
     *
     * @param {*} url
     */
    function deleteFolderRecursive(url) {
        var files = [];
        /**
         * 判断给定的路径是否存在
         */
        if (fs.existsSync(url)) {
            /**
             * 返回文件和子目录的数组
             */
            files = fs.readdirSync(url);
            files.forEach(function (file, index) {

                var curPath = path.join(url, file);
                /**
                 * fs.statSync同步读取文件夹文件,如果是文件夹,在重复触发函数
                 */
                if (fs.statSync(curPath).isDirectory()) { // recurse
                    deleteFolderRecursive(curPath);

                } else {
                    fs.unlinkSync(curPath);
                }
            });
            /**
             * 清除文件夹
             */
            fs.rmdirSync(url);
        } else {
            console.log("给定的路径不存在,请给出正确的路径");
        }
    }

原文地址:https://www.cnblogs.com/youcong/p/11219417.html

时间: 2024-11-05 22:43:16

Node.js之删除文件夹(含递归删除)的相关文章

使用Node.JS监听文件夹变化

使用Node.JS监听文件夹改变有许多应用场合,比如: 构建自动编绎工具 当源文件改变时,自动运行build过程,比如当你写CoffeeScript文件或SASS CSS文件时,保存之后可即时生成对应的JS或CSS. 构建自动布署工具 通过侦听源文件夹的改变,你可以自动即时将改后的文件布署到测试服务器,加快你的开发测试速度. 这些工具其实都需要侦听文件夹的改变,基于Node.JS的侦听文件夹改变的模块有很多. fs.watch 其中Node.JS的文件系统也可侦听某个目录的改变, 如fs.wat

SVN服务器中可以删除文件夹但无法删除文件

SVN服务器中可以删除文件夹但无法删除文件:解决办法 找到任一台连接SVN的电脑客户端,然后打开TortoiseSVN Browser,打开以后输入正确的URL,如图所示: 输入正确的身份验证信息后,在文件目录中找到对应的文件 找到该文件,右键会出现X删除,直接删除即可. 出现该问题的原因:SVN不允许在服务器端删除客户端上传的单一文件,除非将整个工程删除.如果想要删除某个文件,只能通过URL访问到后,进行删除.

Web 在线文件管理器学习笔记与总结(15)剪切文件夹 (16)删除文件夹

(15)剪切文件夹 ① 通过rename($oldname,$newname) 函数实现剪切文件夹的操作 ② 需要检测目标文件夹是否存在,如果存在还要检测目标目录中是否存在同名文件夹,如果不存在则剪切 dir.function.php 添加: //剪切文件夹 function cutFolder($src,$dst){ if(!file_exists($dst)){ return '目标目录不存在'; }else{ if(!is_dir($dst)){ return '不是目录'; }else{

PHP 查看文件夹大小、复制文件夹、删除文件夹

PHP虽然提供了 filesize.copy.unlink 等文件操作的函数,但是没有提供 dirsize.copydir.rmdirs 等文件夹操作的函数(rmdir也只能删除空目录).所以只能手动编写这些函数,主要的技巧是通过递归将问题逐层分解,直到分解成可以直接解决的最小子问题. ====================查看文件夹大小===================== 由于文件夹是没有大小的,平常所说的文件夹尺寸准确的说应该是文件夹中所有文件的总大小.所以只需要将文件夹逐层查找,统

java IO流实现删除文件夹以及文件夹中的内容

这篇主要是对IO文件流对文件常用处理中的删除文件夹,平时我们直接删除文件夹既可以删除里面的全部内容. 但是java在实现删除时,只能是文件才会被删除. 所以这里需要定义一个方法,来递归调用方法(递归调用,就是在方法的内部调用自己),实现文件夹里面的全部文件删除 注意:做这个测试的时候,一定要备份,如果删除成功就不会回复了 结果如下:

VC删除文件夹操作代码

VS删除文件夹 //功能: 删除非空目录文件夹 //输入: DirName 文件夹名 //输出: 删除是否成功 //功能: 迭代文件夹内文件,一个一个删除 BOOL DeleteDirectory(char *DirName) { CFileFind tempFind; char tempFileFind[200]; sprintf(tempFileFind,"%s\.",DirName); BOOL IsFinded=(BOOL)tempFind.FindFile(tempFileF

php 删除文件夹的实现代码

php没有一个具体的删除文件夹方法,下面是我自己的一段关于删除文件夹的代码: /** * 删除文件目录 * @param unknown $dir * @return boolean */ function deldir($dir) { //先删除目录下的文件: //chmod($dir,0777); $dh=opendir($dir); while ($file=readdir($dh)) { if($file!="." && $file!=".."

php递归删除文件夹

php递归删除文件夹函数写了两次..第一次执行没删除成功,需要多次删除成功...所以应该算是失败了,,代码如下: <span style="color:#FF0000;">//删除文件方法 private function rmdirs($val){ rmdir($val); if(!file_exists($val)){ return false; } if(is_file($val)||is_link($val)){ return unlink($val); } if(

C#追加、拷贝、删除、移动文件、创建目录、递归删除文件夹及文件

C#追加文件 StreamWriter sw = File.AppendText(Server.MapPath(".")+"\\myText.txt"); sw.WriteLine("追逐理想"); sw.WriteLine("kzlll"); sw.WriteLine(".NET笔记"); sw.Flush(); sw.Close();C#拷贝文件 string OrignFile,NewFile; Or