精华内容
下载资源
问答
  • 文件夹
    千次阅读
    2021-11-15 12:04:51

    删除文件夹及其子文件夹和文件

    一、首先创建几个文件夹和文件

    package com.inspire;
    
    import java.io.File;
    import java.io.FileOutputStream;
    
    public class test16 {
        public static void main(String[] args) {
            outputClazz(new byte[]{1,2,3},"com.inspire.test","D:/ttttt1/");
            outputClazz(new byte[]{1,2,3},"com.inspire.test.test1","D:/ttttt1/");
            outputClazz(new byte[]{1,2,3},"com.inspire.test.test2","D:/ttttt1/");
            outputClazz(new byte[]{1,2,3},"com.inspire.test.tt.ttt.t1","D:/ttttt1/");
        }
        public static String outputClazz(byte[] bytes, String className, String pathName) {
            String[] split = className.split("\\.");
            FileOutputStream out = null;
            try {
                for (int i = 0; i < split.length - 1; i++) {
                    pathName += split[i] + "/";
                }
                //创建文件夹
                File folders = new File(pathName);
                boolean exists = folders.exists();
                if (!exists) {
                    folders.mkdirs();
                }
                pathName = pathName + split[split.length - 1] + ".class";
                
                File file=new File(pathName);
                if(file.exists()){
                    file.delete();//如果同名文件存在,则删除
                }
    
                out = new FileOutputStream(pathName);
                out.write(bytes);
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                if (null != out) try {
                    out.close();
                } catch (java.io.IOException e) {
                    e.printStackTrace();
                }
            }
            return pathName;
        }
    }
    
    

    二、删除文件夹及其子文件夹和文件

    1.删除方式一(支持低版本jdk,如jdk6)

    package com.inspire;
    
    import java.io.File;
    
    public class test18 {
        public static void main(String[] args) {
    
            deleteAspectjCodeDir("D:/ttttt1/");
        }
    
        private static void deleteAspectjCodeDir(String path){
            File directory=new File(path);
            deleteDir(directory);
            directory.delete();//最后删除掉跟目录
        }
    
        private static void deleteDir(File directory) {
            if(directory.isDirectory()){
                File[] files = directory.listFiles();
                for(File file:files){
                    if(file.isFile()){
                        file.delete();
                    }else {//是文件夹
                        deleteDir(file);//删除掉当前文件夹的子目录
                        file.delete();//删除掉当前文件夹
                    }
                }
            }
        }
    }
    
    

    优化:

    上面方案也是可行的,下面的方案优化掉了“文件夹判断”,上面的方案中的文件夹判断不多余,如果直接去掉会报错

    package com.inspire02;
    
    import java.io.File;
    
    /**
     * @author :inspire
     * @date :Created in 2022/3/22 17:31
     * @description:
     * @modified By:inspire
     * @version:
     */
    public class test09 {
        public static void main(String[] args) {
    
            deleteAspectjCodeDir("D:\\dev_file\\AllLogFile\\kafka-logs");
        }
    
        private static void deleteAspectjCodeDir(String path) {
            File directory = new File(path);
            deleteDir(directory);
            directory.delete();//最后删除掉跟目录
        }
    
        private static void deleteDir(File directory) {
            File[] files = directory.listFiles();
            for (File file : files) {
                if (file.isFile()) {
                    file.delete();
                } else if (file.isDirectory()) {//是文件夹
                    deleteDir(file);//删除掉当前文件夹的子目录
                    file.delete();//删除掉当前文件夹
                }
            }
    
        }
    }
    
    

    2.删除方式二(支持jdk7及其以上)

    package com.inspire;
    
    import java.io.File;
    import java.io.IOException;
    import java.nio.file.*;
    import java.nio.file.attribute.BasicFileAttributes;
    
    public class test17 {
        public static void main(String[] args) {
    
            File folders = new File("D:/ttttt1");
            boolean exists = folders.exists();
            System.out.println(exists);
            if (exists) {
                System.out.println(exists);
                deleteDir("D:/ttttt1");
            }else {
                System.out.println("path is not exists!");
            }
    
        }
    
        private static void deleteDir(String path) {
            Path directory = Paths.get(path);
    
            try {
                Files.walkFileTree(directory ,new SimpleFileVisitor<Path>(){
                    @Override
                    public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
                        Files.delete(file);
                        return FileVisitResult.CONTINUE;
                    }
    
                    @Override
                    public FileVisitResult postVisitDirectory(Path dir, IOException exc) throws IOException {
                        Files.delete(dir);
                        return FileVisitResult.CONTINUE;
                    }
                });
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    
    
    更多相关内容
  • python读取一个文件夹下所有(或者指定文件类型)文件的名字。 循环读取子文件夹内文件名。 自己写的代码,注释清晰,具有较高的参考价值。
  • Windows7文件夹修改提示找不到该项目的解决方法 最近遇到一个奇怪的问题,对Windows 7文件夹进行重命名、剪切、复制的时候,总是提示 “找不到该项目”,然后重试才能成功。 压缩包里有修复工具
  • 本问介绍了如何使用Xcopy复制文件夹及其子文件夹,并向你介绍了在Windows中复制文件夹及其子文件夹更简单的方法。什么是Xcopy?“Xcopy”是用cmd复制文件夹的一个命令,可以将文件,目录,甚至整个磁盘从一个位置...

    本问介绍了如何使用Xcopy复制文件夹及其子文件夹,并向你介绍了在Windows中复制文件夹及其子文件夹更简单的方法。

    什么是Xcopy?

    “Xcopy”是用cmd复制文件夹的一个命令,可以将文件,目录,甚至整个磁盘从一个位置复制到另一个位置。它是“copy”命令的高级版,因为它可以指定源和目标。他有一个非常强大的功能,就是从CDROM复制文件到硬盘时,它会自动删除文件的只读属性。

    Xcopy命令在大多数操作系统(例如Windows 10,Windows 8,Windows 7,Windows XP,Windows Vista和Windows 98)中可以使用。在MS-DOS中也可以使用。

    我可以使用Xcopy复制文件夹及其子文件夹吗?

    “我有一个文件夹,其中包含许多子文件夹和文件。现在我想将这个文件夹复制到另一个地方,但我不想重新创建文件夹目录。我可以使用Xcopy将文件夹及其子文件夹以及目录复制到另一个地方吗?”

    重新创建文件夹目录是一件非常无聊而且容易出错的事,尤其是使用右键不停点击新建的方法来创建多个目录和文件夹的时候。所以你可以通过Xcopy复制文件夹及其子文件夹。如果你不知道Xcopy复制文件夹命令是什么,那么请继续往下读。

    在Windows 7/8/10中使用Xcopy复制文件夹及其子文件夹

    要使用cmd复制文件夹及其子文件夹,最常用的命令为:

    Xcopy [源] [目标] [选项]

    它可以有很多选项和设置来满足不同的需求。你可以参考下述三种情况的操作步骤。

    情况1. 复制文件夹,子文件夹和内容

    1. 在搜索框中输入“cmd”。在列表中右键点击“命令提示符”,然后选择“以管理员身份运行”。

    2. 在这里你可以输入以下Xcopy命令来复制文件夹及其子文件夹。比如,你要把C盘上“test”文件夹及其子文件夹复制到D盘,输入命令,如下所示:

    Xcopy C:\ test D:\test /E/H/C/I

    /E –复制子文件夹,包括空文件夹。

    /H-复制具有隐藏文件和系统文件属性的文件。

    /C-即使发生错误也继续复制。

    /I-如有疑问,始终假定目标位置是文件夹。比如,当目标位置不存在时。

    注意:

    Xcopy不会复制已经打开的文件。

    Xcopy执行时不会显示进度或已完成的信息。

    对于名称中带有空格的文件夹或长度大于8个字符的文件夹,最好在文件夹的路径两边加上引号,否则可能会出错。

    情况2. 复制文件夹及其子文件夹而不包含文件

    你可以按照“情况一”的方法打开命令提示符。然后你可以输入以下命令来使用Xcopy复制文件夹及其子文件夹而不包含文件:

    Xcopy 源目标/T/E

    /T-复制子目录结构,但不复制文件。

    /E-复制子目录,包括任何空目录。

    情况3. 复制具有NTFS和共享权限的文件夹及其子文件夹

    有时候你可能需要将NTFS和共享权限与文件夹一起转移。在打开命令提示符后,你可以输入以下命令来复制文件夹及其子文件夹并保留其NTFS和共享权限:

    Xcopy 源目标/O/X/E/H/K

    /E–复制子文件夹,包括空文件夹。

    /H-复制具有隐藏文件和系统文件属性的文件。

    /K-复制属性。一般来说Xcopy会取消掉文件的“只读”属性。

    /O-复制文件所有权和ACL信息。

    /X-复制文件审核设置(隐含/O)。

    Xcopy还有很多命令,对于不同的情况,你应该使用不同的命令。一般来说,进行一次复制需要同时使用多个命令。其中如果有一个命令使用不正确,Xcopy就不会工作,甚至会丢失文件。所以在使用Xcopy时一定要小心。

    而且大多数用户都不熟悉cmd的使用,大量的命令会让他们眼花缭乱。所以你可以使用第三方工具(比如傲梅轻松备份免费版)

    在Windows 7/8/10中复制文件夹及其子文件夹的简便方法

    “傲梅轻松备份免费版”是Windows Vista / XP / 7/8/10都可以用的备份软件。它可以让你将文件夹或文件备份到其他的位置(硬盘,移动存储设置,U盘,网络等)。该软件具有简单明了的操作界面,所以就算是第一次使用,也可以轻松的完成任务。

    该软件还有许多有用的功能。比如可以设置定时备份(“每日”、“每周”、“每月”、“事件触发”等)。此外,还可以设置备份策略(增量备份、差异备份、完全备份),使用这个功能可以节约空间和时间。

    使用傲梅轻松备份免费版复制文件夹及其子文件夹步骤:

    1. 下载傲梅轻松备份免费版,安装并启动。

    2. 点击主页面左侧工具栏的“备份”中的“文件备份”。

    3. 点击“ 添加文件”或“ 添加文件夹”来选择要备份的文件或文件夹,然后点击“ 确定”。

    注意:

    点击“添加文件夹”后,打开“过滤设置”可以设置需要排除的文件或文件夹。

    4. 选择要将文件或文件夹复制到哪里。可以是其他磁盘、已连接的移动存储设备,云盘,共享文件夹和NAS。

    5. 选择完毕后,点击“开始备份”即可。

    结论

    你可以按照第一个方法的步骤,使用Xcopy复制文件夹及其子文件夹。但是,有许多用户反应:“Xcopy有时无法正常工作所以导致复制失败”或者是“Xcopy不能复制所有文件”。在一些特殊情况下,由于内存不足或命令错误,Xcopy会失败。

    因此,使用傲梅轻松备份免费版复制文件夹或文件是一种更可靠,更方便的方法。只需点击鼠标几下,就可以将文件或文件夹复制到你想要的位置,它还有许多有用的功能(比如备份策略,创建启动盘等)。

    此外,Windows XP / Vista / 7/8/10用户可以使用傲梅轻松备份免费版,如果你是Windows Server用户,则可以尝试这个版本–傲梅轻松备份服务器版。

    下载轻松备份免费版

    展开全文
  • C#复制文件夹(及文件夹下所有子文件夹和文件),非常好用,用来做文件拷贝系统很实用,可以遍历,另外还有进度条
  • 概要:文件夹整理是我们常用的功能,怎么样才能高效的批量将多个文件夹整理合并到一个文件夹中呢?我们最拿手的就是复制和粘贴,但是复制粘贴的效率太慢了,要想知道我们如何批量快速地将多个文件夹整理合并到一个...

    概要:文件夹整理是我们常用的功能,怎么样才能高效的批量将多个文件夹整理合并到一个文件夹中呢?我们最拿手的就是复制和粘贴,但是复制粘贴的效率太慢了,要想知道我们如何批量快速地将多个文件夹整理合并到一个文件夹中,请看此文。

    平时我们都需要将多个文件夹复制粘贴到另外一个文件夹中,比如说我们需要汇总工作报告或汇总工作的文档。如果文件夹比较少的话,我们直接复制粘贴都可以了,但是如果文件夹来自于多个地方,并且有成百上千万个文件夹,那么如何才能高效的将这些文件夹合并到同一个目标文件夹中呢?

    以前我们都是需要手工复制并粘贴这些文件夹到目标文件夹中,但是今天有一个很简单的方法,能够批量的将多个文件夹合并并整理到一个目标文件夹中。

    方法其实非常简单,我们只需要简单地单击几个步骤就可以达到批量将多个文件夹合并到同一个文件夹中的功能。那么具体的合并多个文件夹怎么操作呢?接下来就给大家仔细讲解一下,如何批量高效地合并文件夹。

    首先我们打开「我的ABC软件工具箱」,然后进入到将文件夹合并到一个文件夹中的功能

    这里我们只需要选择我们需要批量合并的文件夹:

    当我们选择完需要批量合并的文件夹之后,直接单击下一步,软件就可以为我们批量地复制粘贴到目标文件夹了,从而达到了我们批量合并文件夹的目的,是不是很快速方便呢?当我们选择完需要批量合并的文件夹之后,直接单击下一步,软件就可以为我们批量地复制粘贴到目标文件夹了,从而达到了我们批量合并文件夹的目的,是不是很快速方便呢?

    展开全文
  • 文章目录一、调用目标文件夹的方法1、Application.FileDialog方法2、视窗浏览器界面选择目标文件夹二、仅列出所有文件三、仅列出目标文件夹中所有子文件夹名四、遍历目标文件夹内所有文件、以及所有子文件夹中的所有...

    一、调用目标文件夹的方法

    1、Application.FileDialog方法

    Sub ListFilesTest()
        With Application.FileDialog(msoFileDialogFolderPicker) '运行后出现标准的选择文件夹对话框        
            If .Show Then myPath = .SelectedItems(1) Else Exit Sub '如选中则返回=-1 / 取消未选则返回=0 
        End With
        If Right(myPath, 1) <> "" Then myPath = myPath & "" 
        '返回的是选中目标文件夹的绝对路径,但除了本地C盘、D盘会以"C:"形式返回外,其余路径无""需要自己添加 
    End Sub
    

    2、视窗浏览器界面选择目标文件夹

    Sub ListFilesTest()
        Set myFolder = CreateObject("Shell.Application").BrowseForFolder(0, "GetFolder", 0)
        If Not myFolder Is Nothing Then myPath$ = myFolder.Items.Item.Path Else MsgBox "Folder not Selected": Exit Sub
        If Right(myPath, 1) <> "" Then myPath = myPath & ""
        '同样返回的是选中目标文件夹的绝对路径,但除了本地C盘、D盘会以"C:"形式返回外,其余路径无""需要添加 
    End Sub
    

    二、仅列出所有文件

    • 不包括 子文件夹、不包括子文件夹中的文件
    Sub ListFilesTest()
        With Application.FileDialog(msoFileDialogFolderPicker)
            If .Show Then myPath$ = .SelectedItems(1) Else Exit Sub
        End With
        If Right(myPath, 1) <> "" Then myPath = myPath & ""
        '以上选择目标文件夹以得到路径myPath
        MsgBox ListFiles(myPath)    
        '调用FSO的ListFiles过程返回目标文件夹下的所有文件名
    End Sub
    
    Function ListFiles(myPath$)
       Set fso = CreateObject("Scripting.FileSystemObject") '打开FSO脚本、建立FSO对象实例
       For Each f In fso.GetFolder(myPath).Files  '用FSO方法遍历指定文件夹内所有文件
          i = i + 1: s = s & vbCr & f.Name            '逐个列出文件名并统计文件个数 i
       Next
       ListFiles = i & " Files:" & s  '返回所有文件名的合并字符串
    End Function
    

    三、仅列出目标文件夹中所有子文件夹名

    • 不包括目标文件夹中文件、不包括子文件夹中的文件或子文件夹
    Sub ListFilesTest()
        With Application.FileDialog(msoFileDialogFolderPicker)
            If .Show Then myPath$ = .SelectedItems(1) Else Exit Sub
        End With
        If Right(myPath, 1) <> "" Then myPath = myPath & "" 
        MsgBox ListFolders(myPath)
    End Sub
    
    Function ListFolders(myPath$)
       Set fso = CreateObject("Scripting.FileSystemObject")
       For Each f In fso.GetFolder(myPath).SubFolders
          j = j + 1: t = t & vbCr & f.Name
       Next
       ListFolders = j & " Folders:" & t
    End Function
    

    fso.GetFolder(myPath).Files
    fso.GetFolder(myPath).SubFolders

    四、遍历目标文件夹内所有文件、以及所有子文件夹中的所有文件

    • 递归
    Sub ListFilesTest()
        With Application.FileDialog(msoFileDialogFolderPicker)
            If .Show Then myPath$ = .SelectedItems(1) Else Exit Sub
        End With
        If Right(myPath, 1) <> "" Then myPath = myPath & ""
        
        [a:a] = ""                    '清空A列
        Call ListAllFso(myPath)   '调用FSO遍历子文件夹的递归过程
        
    End Sub
    
    Function ListAllFso(myPath$) '用FSO方法遍历并列出所有文件和文件夹名的【递归过程】
        Set fld = CreateObject("Scripting.FileSystemObject").GetFolder(myPath)
        '用FSO方法得到当前路径的文件夹对象实例 注意这里的【当前路径myPath是个递归变量】
    
        For Each f In fld.Files  '遍历当前文件夹内所有【文件.Files】
            [a65536].End(3).Offset(1) = f.Name '在A列逐个列出文件名
        Next
    
        For Each fd In fld.SubFolders  '遍历当前文件夹内所有【子文件夹.SubFolders】
            [a65536].End(3).Offset(1) = " " & fd.Name & ""  '在A列逐个列出子文件夹名
            Call ListAllFso(fd.Path)       '注意此时的路径变量已经改变为【子文件夹的路径fd.Path】
            '注意重点在这里: 继续向下调用递归过程【遍历子文件夹内所有文件文件夹对象】
        Next
    End Function
    
    
    • 字典
    Sub ListFilesTest()
        With Application.FileDialog(msoFileDialogFolderPicker)
            If .Show Then myPath$ = .SelectedItems(1) Else Exit Sub
        End With
        If Right(myPath, 1) <> "" Then myPath = myPath & ""
        
        MsgBox "List Files:" & vbCr & Join(ListAllFsoDic(myPath), vbCr)
        MsgBox "List SubFolders:" & vbCr & Join(ListAllFsoDic(myPath, 1), vbCr)
    End Sub
    
    Function ListAllFsoDic(myPath$, Optional k = 0) '使用2个字典但无需递归的遍历过程
        Dim i&, j&
        Set d1 = CreateObject("Scripting.Dictionary") '字典d1记录子文件夹的绝对路径名    
        Set d2 = CreateObject("Scripting.Dictionary") '字典d2记录文件名 (文件夹和文件分开处理)
    
        d1(myPath) = ""           '以当前路径myPath作为起始记录,以便开始循环检查
     
        Set fso = CreateObject("Scripting.FileSystemObject")
        Do While i < d1.Count
        '当字典1文件夹中有未遍历处理的key存在时进行Do循环 直到 i=d1.Count即所有子文件夹都已处理时停止
    
            kr = d1.Keys '取出文件夹中所有的key即所有子文件夹路径 (注意每次都要更新)
            For Each f In fso.GetFolder(kr(i)).Files '遍历该子文件夹中所有文件 (注意仅从新的kr(i) 开始)
                j = j + 1: d2(j) = f.Name
               '把该子文件夹内的所有文件名作为字典Item项加入字典d2 (为防止文件重名不能用key属性)
            Next
    
            i = i + 1 '已经处理过的子文件夹数目 i +1 (避免下次产生重复处理)
            For Each fd In fso.GetFolder(kr(i - 1)).SubFolders '遍历该文件夹中所有新的子文件夹
                d1(fd.Path) = " " & fd.Name & "" 
                '把新的子文件夹路径存入字典d1以便在下一轮循环中处理
            Next
        Loop
    
        If k Then ListAllFsoDic = d1.Keys Else ListAllFsoDic = d2.Items
        '如果参数=1则列出字典d1中所有子文件夹的路径名 (如使用d1.Items则仅列出子文件夹名称不含路径)
        '如果参数=0则默认列出字典d2中Items即所有文件名 
    End Function
    
    • DIR
    Sub ListAllDirDicTest()
        With Application.FileDialog(msoFileDialogFolderPicker)
            If .Show Then myPath$ = .SelectedItems(1) Else Exit Sub
        End With
        If Right(myPath, 1) <> "" Then myPath = myPath & ""
        
        MsgBox Join(ListAllDirDic(myPath), vbCr) 'GetAllSubFolder's File 列出目标文件夹内含子文件夹内所有文件
        MsgBox Join(ListAllDirDic(myPath, 1), vbCr) 'GetThisFolder's File 列出目标文件夹内所有文件(不含子文件夹)
        
        MsgBox Join(ListAllDirDic(myPath, -1), vbCr) 'GetThisFolder's SubFolder 仅列出目标文件夹内的子文件夹
        MsgBox Join(ListAllDirDic(myPath, -2), vbCr) 'GetAllSubFolder 列出目标文件夹内含子文件夹的所有子文件夹
        
        MsgBox Join(ListAllDirDic(myPath, 1, "tst"), vbCr) 'GetThisFolder's SpecialFile 仅列出文件夹内含关键字文件
        MsgBox Join(ListAllDirDic(myPath, , "tst"), vbCr) 'GetAllSubFolder's SpecialFile 列出子文件夹内含关键字文件
        
    End Sub
    
    Function ListAllDirDic(myPath$, Optional sb& = 0, Optional SpFile$ = "")
        '利用Dir方法、以及用2个字典分别记录子文件夹路径和文件名的文件搜寻方法。
    
        '第1参数【指定路径myPath】必选 为指定目标文件夹的绝对路径
    
        '第2参数【子文件夹模式sb】为可选 =奇数时只搜寻当前文件夹、=偶数时搜寻所有子文件夹
        '                                      该参数>=0时返回文件名、<0时返回文件夹路径名 
        '因此事实上第2参数可以设置这样四种模式:
        '  默认=0时,搜寻所有子文件夹并返回所有文件名
        '        =1时,搜寻当前文件夹并返回所有文件名 (不向下搜寻子文件夹)
        '        =-1时,搜寻当前文件夹并返回子文件夹路径名
        '        =-2时, 搜寻所有子文件夹并返回所有子文件夹路径名
    
        '第3参数【文件名指定特殊匹配字符SpFile】 可选,返回文件名时用此关键词过滤一下
        '默认留空时,返回全部文件名 (等于没有被过滤掉)
        ' = 某个关键字时,返回符合匹配(即含该关键字)的部分文件名 (有过滤掉不含关键字的文件名)
        ' = .xl 也可这样指定文件类型,返回匹配(该关键字指定文件类型)的部分文件名 (过滤掉其它类型文件名)
        
        Dim i&, j&, myFile$
        Set d1 = CreateObject("Scripting.Dictionary") '定义存放子文件夹路径的字典d1
        Set d2 = CreateObject("Scripting.Dictionary") '定义存放文件名的字典d2
        
        d1(myPath) = " '字典d1初始化记录目标文件夹路径名
        On Error Resume Next
        Do While i < d1.Count
            kr = d1.Keys  '从字典d1中更新提取所有子文件夹
            myFile = Dir(kr(i), vbDirectory) '用Dir方法遍历该子文件夹得到文件或文件夹名 注意从kr(i)开始避免重复
            Do While myFile <> "" 'Dir遍历直到返回空字符串 (即无未被遍历的文件或文件夹了)
                If myFile <> "." And myFile <> ".." Then '如果是"."或".."属性则不用处理
                    If (GetAttr(kr(i) & myFile) And vbDirectory) = vbDirectory Then '判断是文件夹属性时
                        If Err.Number Then Err.Clear Else d1(kr(i) & myFile & "") = ""
                        '#52 文件名Err时忽略(一般为操作系统语言文字环境问题),否则字典d1记录该子文件夹路径
                    Else '如果不是文件夹则为文件
                        If SpFile = "" Then '如未指定关键字
                            j = j +1: d2(j) = myFile '则所有文件名都作为Item项加入字典d2 (不能使用key防止重名文件)
                        Else '否则指定了关键字 
                            If InStr(myFile, SpFile) Then j = j +1: d2(j) = myFile
                            '则判断含有指定关键字以后才可作为Item项加入字典d2 (不能使用key防止重名文件)
                        End If
                    End If
                End If
                myFile = Dir '用Dir方法继续搜寻下一个文件或子文件夹
            Loop
            If sb Mod 2 Then Exit Do Else i = i + 1
            '如果第2参数指定为奇数则不用继续检查子文件夹就可退出,
            '否则 i+1避免重复检查然后利用字典d1中的记录,继续检查下一个子文件夹直到全部子文件夹检查完毕
        Loop
        If sb >= 0 Or Len(SpFile) Then ListAllDirDic = d2.Items Else ListAllDirDic = d1.Keys
        '如果第2参数>=0或第3参数有指定则返回d2的Items文件名、否则返回d1的keys子文件夹名
    End Function
    
    • Redim Preserve
    • 调用Dos中的Dir命令
    Sub ListFilesDos()
        Set myFolder = CreateObject("Shell.Application").BrowseForFolder(0, "GetFolder", 0)
        If Not myFolder Is Nothing Then myPath$ = myFolder.Items.Item.Path Else MsgBox "Folder not Selected": Exit Sub
        
        myFile$ = InputBox("Filename", "Find File", ".xl")
        '在这里输入需要指定的关键字,可以是文件名的一部分,或指定文件类型如 ".xl"
        tms = Timer
        With CreateObject("Wscript.Shell") 'VBA调用Dos命令
            ar = Split(.exec("cmd /c dir /a-d /b /s " & Chr(34) & myPath & Chr(34)).StdOut.ReadAll, vbCrLf) '所有文档含子文件夹
            '指定Dos中Dir命令的开关然后提取结果 为指定文件夹以及所含子文件夹内的所有文件的含路径全名。
            s = "from " & UBound(ar) & " Files by Search time: " & Format(Timer - tms, " 0.00s") & " in: " & myPath
            '记录Dos中执行Dir命令的耗时
            tms = Timer: ar = Filter(ar, myFile) '然后开始按指定关键词进行筛选。可筛选文件名或文件类型
            Application.StatusBar = Format(Timer - tms, "0.00s") & " Find " & UBound(ar) + IIf(myFile = "", 0, 1) & " Files " & s
            '在Excel状态栏上显示执行结果以及耗时
        End With
        [a:a] = "": If UBound(ar) > -1 Then [a2].Resize(1 + UBound(ar)) = WorksheetFunction.Transpose(ar)
        '清空A列,然后输出结果
    End Sub
    

    来源:遍历文件夹(含子文件夹)方法

    展开全文
  • Unity 基础 之 特殊文件夹

    千次阅读 2021-12-04 21:53:00
    Unity每个特殊文件夹都有不同的作用,了解掌握特殊文件夹的作用对我们的开发过程会有很大的帮助。还没掌握的童鞋,请认真阅读哦~
  • 概要:在日常的办公过程中,我们经常会需要对文件夹做一些归类整理,比如在多个文件夹前面加上自增的序号,对文件夹进行批量编号,这样不仅可以让文件夹中的文件看起来更清爽,在查找对应的文件时候也能更快速更方便...
  • 通过设置共享文件夹可实现资源的充分利用,尤其对处于同一局域网中的用户很有必要。那WinXP如何共享文件夹呢?现在小编就和大家说一下共享文件夹的方法吧!具体步骤如下:1、打开“控制面板”,双击“网络连接”图标...
  • linux 新建文件夹命令

    万次阅读 2021-02-06 17:00:54
    今天学习了几个命令,是创建、删除文件和文件夹的,在linux里,文件夹是目录,下面说下我学习的命令。 创建文件夹【mkdir】 一、mkdir命令使用权限 所有用户都可以在终端使用 mkdir 命令在拥有权限的文件夹创建...
  • Unity中的文件夹和路径

    千次阅读 2022-03-03 11:10:09
    例如目录Assets/Editor和Assets/Scripts/Editor是一样的,无论多少个叫Editor的文件夹都可以Editor文件夹下存放的所有资源文件或脚本文件都不会被打进包中,并且脚本也只能在编辑时使用。一般会把一些编辑器扩展的...
  • 如何加密文件夹呢?每个人的电脑都有一些重要的文件或比较隐私的资料,如果我们不希望别人访问到文件。那么最好的办法就是给文件夹进行加密。怎么把自己电脑上的某个文件夹设置密码呢?下面小编就来教大家如何加密...
  • Python —— 压缩文件夹

    千次阅读 2021-08-17 23:41:15
    Python —— 压缩文件夹 目标:压缩指定文件夹为zip文件 适用场景:批处理文件,定时打包并发送至指定用户邮箱 python脚本如下: #!/usr/bin/env python # -*- coding:utf-8 -*- """ @Author :xxxxx @...
  • 经常下载文件,因为打包随意,经常一个文件被包裹了多层,我用cmd和Java结合...第一个文件名:DeleteRedundantFiles.java这个文件夹名称一点都不能打错.否则程序不能正常运行. 下面是文件内容. import java.io.File...
  • 用python创建文件夹

    千次阅读 2022-06-25 20:29:07
    用python判断文件夹是否存在,创建一级文件夹,多级文件夹
  • C# 用递归的方式查找指定文件夹下的所有子目录

    千次下载 热门讨论 2014-08-06 01:48:04
    C# 用递归的方式查找指定文件夹下的所有子目录,C#代码 采用递归的方法來查找指定文件夹及它的所有子文件夹裏的内容。
  • 使用rsync同步文件夹

    万次阅读 2019-11-14 19:14:07
    此命令将source_folder文件夹的文件(不含子文件夹)复制到destination_folder文件夹,当source_folder文件夹的文件有变化时此命令会将source_folder文件夹变化后的文件覆盖destination_folder文件夹中的同名文件,...
  • 1、将一个文件夹下的所有内容复制到另一个文件夹下 cp -r /home/packageA/* /home/cp/packageB/ 或 cp -r /home/packageA/. /home/cp/packageB/ 这两种方法效果是一样的。 方法示例: 2、将一个文件夹复制到另一...
  • Win7系统一般安装在C盘,对很多用户来说C盘的文件都颇为神秘,当然也有的朋友会问Win7系统C盘的文件文件夹都有什么作用呢?有哪些是可以删除的,哪些是不能动的呢?带着这个问题Win7系统之家小编来详细分享下每个...
  • 你还在一个一个的修改文件夹名吗?来看下面这个技巧,教你用批量重命名的方法,快速修改多个文件夹名。下面就看操作步骤。希望以后可以用到。 演示需要工具: 下载文件批量改名高手 文件夹 开始操作: 进入到软件中...
  • (新建文件夹的操作步骤)文件夹作为数据文件的目录,在使用计算机的过程中不可或缺,因此如何新建文件夹便成了计算机入门的必学点。说来也简单,当我们掌握新建文件夹的步骤后,可以在任何存储目录、文件对话框、网络...
  • linux移动文件夹

    千次阅读 2022-02-24 10:15:24
    使用命令mv 要移动的文件夹 目标文件夹 ; 假如我要将root下的文件amelia.txt移动到opt下的文件夹software中,我可以使用命令mv /root/amelia.txt /opt/software/amelia.txt; 若提示没有那个文件夹或目录,则先创建...
  • Linux如何彻底清理空文件夹

    千次阅读 多人点赞 2022-04-25 20:33:47
    本文介绍了一套清理Linux指定路径下的空文件夹的实现方法。
  • Java 删除文件夹以及文件夹下的文件

    千次阅读 2022-02-15 15:35:07
    1,文件夹目录结构: 2,删除后显示: 3,代码: import java.io.File; public class DeleteFilestore { public static void main(String[] args) { //删除一个文件夹下的所有文件(包括子目录内的文件) ...
  • 如果操作对象是单个文件,复制和删除以及重命名很简单,如下:cp a.txt A.txt (将a.txt另存为A.txt)mv a.txt A.txt (将a.txt重命名为A.txt)rm a.txt (删除a.txt)linux删除和复制文件夹但是如果直接用下面...
  • Matlab 创建文件夹

    千次阅读 2021-04-12 21:28:57
    Matlab 创建文件夹,文件命名 在打开一个系统盘时,利用命令 cd ‘盘名:’ 命令创建 如 cd ‘D:’ 打开系统盘下的文件夹时 用 cd ‘C:\Program Files\MATLAB\R2017a\examples\matlab_featured’ 也可以一层一层...
  • 群晖 Synology 是 NAS网络存储服务器,虽然它的操作大部分都跟 Windows 差不多,但是还是有些许不同。...由于群晖 Synology NAS网络存储服务器的基础根目录下的文件夹是共享文件夹,所以必须创建这个,才能分门别类...
  • 文件和文件夹属性

    千次阅读 2021-07-28 07:02:52
    《文件和文件夹属性》由会员分享,可在线阅读,更多相关《文件和文件夹属性(2页珍藏版)》请在人人文库网上搜索。1、文件和文件夹属性文件属性一个文件有很多属性,但最重要的是文件名,存储位置,内容,其次还有只读...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,293,121
精华内容 1,317,248
关键字:

文件夹

友情链接: EEG-EMD-master.zip