清空目录

#include <io.h>
#include <stdio.h>
#include <string>
#include <direct.h>

void emptydir(const char* szDir)
{
    if (szDir == NULL || strlen(szDir) == 0)
        return;

    std::string str = std::string(szDir) + "/*.*";

    struct _finddata_t fd;
    long h=_findfirst(str.c_str(), &fd);
    if (h == -1)
    {
        return ;
    }

    do
    {
        if (strcmp(fd.name, ".") == 0
            || strcmp(fd.name, "..") == 0)
            continue;

        if (fd.attrib & (_A_SYSTEM | _A_HIDDEN))
            continue;

        if (fd.attrib & _A_SUBDIR)
        {
            std::string str = std::string(szDir) + "/" + fd.name + "/";
            emptydir(str.c_str());
            rmdir(str.c_str());
            continue;
        }

        std::string str = std::string(szDir) + fd.name;
        printf("%s\n", str.c_str());        

        remove(str.c_str());
    }
    while (_findnext(h, &fd)==0);

    _findclose(h);
}
时间: 2024-10-14 08:38:28

清空目录的相关文章

[Perl系列—] 1. 清空目录及目录中的所有文件

Perl 删除单个文件和目录 Perl 删除单个文件的语法是: unlink 举例来说, 删除 D 盘 temp 目录下的 test.txt 的写法就是: unlink "D:/temp/test.txt" 如果要删除这个目录中所有的文件的话(不包含子目录) unlink glob "D:/temp/*" Perl 删除单个目录的语法是:  rm 类似, 删除上面的temp 目录的写法就可以是: rmdir "D:/temp" 看起来很简单, 但

lua中清空目录和递归创建目录

lua中的 lfs.mkdir lfs.rmdir只能针对单个目录,且lfs.rmdir不能清空文件夹 于是我想到了使用os.execute 递归创建目录如下os.execute("mkdir ooxx\\ooxx\\ooxx\\ooxx) --windowsos.execute("mkdir -p ooxx/ooxx/ooxx) --unix,linux like 清空目录如下os.execute("del ooxx\) --windowsos.execute("

查找目录下的所有文件且清空他们

又到了写BLOG的时间了,下面分享一个我自己写的shell.作用是清空目录下的文件内容,且保留该目录下的文件名. 一.脚本实现: [[email protected] 77]# vim clearcontent.sh #!/bin/bash for d in `find /root/77 -name "*.txt"` do cat /dev/null > $d done 二.find . -name "*.txt"|awk '{system(">

RecursiveDirectoryIterator目录操作类

/** * @author Funsion Wu * @abstract SPL使用案例,全国首发,技术分享,欢迎转帖 */ class Dir extends RecursiveDirectoryIterator { const CHILD_FIRST = RecursiveIteratorIterator::CHILD_FIRST ; const LEAVES_ONLY = RecursiveIteratorIterator::LEAVES_ONLY ; const SELF_FIRST =

pushd,popd,dirs,cd -让切换目录更方便

与linux cd命令相似,用pushd实现在不同目录间切换 在命令行模式下,当你工作在不同目录中,你将发现你有很多时间都浪费在重复输入上如果这些目录不在同一个根目录中,你不得不在转换时输入完整的路径名,这难免让人有些难以忍受但你可以用以下的一个或两个步骤来避免所有多余的输入:用命令行解释器中的历史记录,或者用命令行函数pushd 用命令行解释器中的历史记录的好处是只需按很少的键在命令行中用向上的箭头来查找你用过的命令,直到你找到,然后按回车键如果你所切换的两个目录在整个驱动器的子目录结构中很接

[linux服务器][bash]让切换目录更方便

本文转载:[linux服务器][bash]让切换目录更方便: 一,为何要使用这几个命令?   可能大家会有疑问,为何要使用这几个命令,   难道用cd不就可以切换目录了吗?   没错,使用cd就可以切换到需要访问的目录,   但是有时会是一个路径很长,层次很多的目录,进到此目录下后,这时我们不小心运行了 cd命令,   理所当然,我们回到了自己的home目录,这时如果想回去怎么办? 还有:因为工作的需要,我们需要不停在几个很深层的目录之间切换,不止一个,   那么即使有tab键帮忙,我们也会因为

删除目录下大量小文件和清空大文件

其中--delete-before    接收者在传输之前进行删除操作  可以用来清空目录或文件,如下:  1.先建立一个空目录  mkdir /data/blank  2.用rsync删除目标目录  rsync --delete-before -d /data/blank/ /var/spool/clientmqueue/  这样目标目录很快就被清空了 又假如你有一些特别大的文件要删除,比如nohup.out这样的实时更新的文件,动辄都是几十个G上百G的,也可 以用rsync来清空大文件,而且

批量去BOM头 遍历目录及子文件,文件夹 PHP源码

1 <?php 2 class KillBom 3 { 4     public static $m_Ext = ['txt', 'php', 'js', 'css'];//检查的扩展名 5     /** 6      * 传入一个任意文件 ,自动区分定义的扩展名,然后过滤bom 7      * @param string $file 8      * @return boolean 9      */ 10     public static  function killBomByFile

Linux切换目录pushd、popd、dirs命令

pushd和popd在linux中可以用来方便地在多个目录之间切换,切换目录虽然有一点复杂.在实际中,发现通过使用pushd和popd能够极大地提高效率. cd ~:表示返回当前用户的默认目录 cd -:表示回到之前的目录 [[email protected] share]$ pushd /boot/grub /boot/grub /usr/share ~/data [[email protected] grub]$ dirs -v 0 /boot/grub 1 /usr/share 2 ~/d