精华内容
下载资源
问答
  • 开始参考了 VBA获取文件夹下所有文件和子文件目录的文件中的代码,按照此方式获取的结果有问题。 问题1 无法获取目录名中包含“.”的子目录 '-- 获得所有子目录 Do Until i > k f = Dir(file(i), vbDirectory)...

    公司运营部门需要把影像资料梳理一遍,文件目录特别多,文件量也大,大概40多个G。自己写了一个读取目录下所有子文件的脚本
    开始参考了 VBA获取某文件夹下所有文件和子文件目录的文件中的代码,按照此方式获取的结果有问题。
    问题1 无法获取目录名中包含“.”的子目录

    '-- 获得所有子目录
    Do Until i > k
        f = Dir(file(i), vbDirectory)
            Do Until f = ""
                If InStr(f, ".") = 0 Then
                    k = k + 1
                    ReDim Preserve file(1 To k)
                    file(k) = file(i) & f & "\"
                End If
                f = Dir
            Loop
        i = i + 1
    Loop
    

    代码中使用InStr(f, “.”) = 0 判断,只要名字中包含"."就按照文件处理

    问题2 无法获取扩展名为空的文件

    '-- 获得所有子目录下的所有文件
    For i = 1 To k
       f = Dir(file(i) & "*.*")    '通配符*.*表示所有文件,*.xlsx Excel文件
       Do Until f = ""
          'Range("a" & x) = f
          Range("a" & x).Hyperlinks.Add Anchor:=Range("a" & x), Address:=file(i) & f, TextToDisplay:=f
           x = x + 1
           f = Dir
       Loop
    Next
    

    于是,自己实现了一个支持文件夹名称带“.”或文件名不带扩展名的。
    实现过程
    新建一个文件,在sheet1中增加两个按钮,一个用来选取文件夹,一个用来执行查询

    1. 选择文件脚本
    Option Explicit
    Sub 打开文件夹()
    
       With Application.FileDialog(msoFileDialogFolderPicker)
            If .Show = -1 Then
                Worksheets("Sheet1").Range("C5").Value = .SelectedItems(1)
            End If
        End With
     
    End Sub
    
    
    1. 执行脚本
    
    Sub 按钮1_Click()
    
    On Error Resume Next
    
    Dim folderObj As Object
    Dim currFolder
    Dim fdCnt As Integer
    
    Dim sDir As String
    
    Dim dirExist, f As String
    Dim file(), subFolder(), allfd() As String
    Dim fileNum, k, x, idx, i, j, listNum
    Dim threeDir As String
    
    fileNum = 1
    x = 1
    k = 1
    j = 0
    i = 1
    
    sDir = Worksheets("Sheet1").Range("C5").Value
    
    '=== 0.清除数据=============================================
    Sheet2.UsedRange.Clear
    
    Worksheets("Sheet2").Range("A1").Value = "序号"
    Worksheets("Sheet2").Range("C1").Value = "文件名"
    Worksheets("Sheet2").Range("D1").Value = "文件路径"
    Worksheets("Sheet2").Range("E1").Value = "文件格式"
    Worksheets("Sheet2").Range("E1").Interior.Color = RGB(255, 255, 0)
    Worksheets("Sheet2").Range("A1").Interior.Color = RGB(255, 255, 0)
    Worksheets("Sheet2").Range("C1").Interior.Color = RGB(255, 255, 0)
    Worksheets("Sheet2").Range("D1").Interior.Color = RGB(255, 255, 0)
    Worksheets("Sheet2").Range("E1").Borders.LineStyle = xlContinuous
    Worksheets("Sheet2").Range("A1").Borders.LineStyle = xlContinuous
    Worksheets("Sheet2").Range("C1").Borders.LineStyle = xlContinuous
    Worksheets("Sheet2").Range("D1").Borders.LineStyle = xlContinuous
    
    '=== 1.判断选择的文件夹是否有效===============================
    
    dirExist = dir(sDir, vbDirectory)
    If dirExist = "" Then
        MsgBox ("选择的文件夹无效")
        Exit Sub
    End If
    
    '=== 2.获取所有子目录======================================
    
    ReDim subFolder(1 To i)
    
    subFolder(1) = sDir & "\"
    f = dir(subFolder(1), vbDirectory)
    Do Until f = ""
        If f <> "." And f <> ".." Then
            If (GetAttr(subFolder(1) & f) And vbDirectory) = 16 Then
                'Worksheets("Sheet3").Range("A" & k).Value = subFolder(1) & f & "\"
                k = k + 1
                ReDim Preserve subFolder(1 To k)
                subFolder(k) = subFolder(1) & f & "\"
            End If
        End If
        f = dir
    Loop
    i = i + 1
    
    Dim tmp As Integer
    tmp = 0
    
    For Each fd In subFolder
        tmp = tmp + 1
        ReDim Preserve allfd(1 To tmp)
        i = 1
        k = 1
        Erase file
        ReDim file(1 To i)
        file(i) = fd
        allfd(tmp) = fd
        Worksheets("Sheet3").Range("B" & tmp).Value = allfd(tmp)
    
        If subFolder(1) = file(i) Then
             f = dir
            i = i + 1
        Else
    
        Do Until i > k
            f = dir(file(i), vbDirectory)
            Do Until f = ""
                If f <> "." And f <> ".." Then
                    If (GetAttr(file(i) & f) And vbDirectory) = 16 Then
                        k = k + 1
                        ReDim Preserve file(1 To k)
                        file(k) = file(i) & f & "\"
                        tmp = tmp + 1
                        ReDim Preserve allfd(1 To tmp)
                        allfd(tmp) = file(i) & f & "\"
                       ' Worksheets("Sheet3").Range("B" & tmp).Value = allfd(tmp)
                    End If
                End If
                f = dir
            Loop
            i = i + 1
        Loop
        End If
    Next
    
    '=== 3.获取所有子目录下的文件======================================
    '
    Dim threeStr As String
    
    x = 2
    idx = 1
    For i = 1 To tmp
      
        f = dir(allfd(i) & "*.*")
        Do Until f = ""
            Worksheets("Sheet2").Range("A" & x).Value = idx
            Worksheets("Sheet2").Range("C" & x).Value = f
            Worksheets("Sheet2").Range("D" & x).Value = Replace(allfd(i), sDir, "") & f
            'Worksheets("Sheet2").Range("E" & x).Value = getFileType(f)
            
            'Worksheets("Sheet2").Range("B" & x).NumberFormatLocal = "@"
            'Worksheets("Sheet2").Range("B" & x).Value = getToubaodanHao(sDir, allfd(i))
    
          
            f = dir
            x = x + 1
            idx = idx + 1
        Loop
      
    Next
    
    
    End Sub
    
    
    
    

    最终效果:
    在这里插入图片描述
    在这里插入图片描述

    参考

    1. W3CSchool VBA教程
    2. VBA获取某文件夹下所有文件和子文件目录的文件
    3. VBA 快速入门
    展开全文
  • 获得指定文件夹下所有文件的全路径。 可以使用Directory下面的GetFiles方法。 1、获得文件夹所有文件路径。 2、获得指定文件路径。 3、获得指定多个类型文件路径。 第三个可以一次能获得任意想要的文件的路径...

    获得指定文件夹下所有文件的全路径。

    可以使用Directory下面的GetFiles方法。

    1、获得文件夹所有文件路径。


    2、获得指定文件路径。


    3、获得指定多个类型文件路径。


    第三个可以一次能获得任意想要的文件的路径。

    代码为string[] path2 = Directory.GetFiles(@"E:\visual studio 2013\DNet\Dnet07Winform\Img").Where(x => x.EndsWith(".jpg", StringComparison.OrdinalIgnoreCase) | x.EndsWith(".png", StringComparison.OrdinalIgnoreCase) | x.EndsWith(".bmp",StringComparison.OrdinalIgnoreCase)).ToArray();

    整体代码与结果:


     转载请注明出处。



    展开全文
  • 1.在你要获取路径的文件夹下 新建文本文档 (.txt) 文件, 2.输入以下内容保存 DIR *.* /S/B >LIST.TXT /s 表示递归 3. 将文件后缀改成 .bat 4.双击运行.bat 文件,在同目录下会生成一个.txt的文件,里面...

    1.在你要获取路径的文件夹下 新建文本文档 (.txt) 文件,

    2.输入以下内容保存

    DIR *.*  /S/B >LIST.TXT

    /s 表示递归

    3. 将文件后缀改成 .bat 

    4.双击运行.bat 文件,在同目录下会生成一个.txt的文件,里面就是你要的路径

    转载于:https://www.cnblogs.com/UncleWang001/p/10571933.html

    展开全文
  • 获取指定文件夹下所有文件(*.tiff *.tif): mFolderPath = QFileDialog::getExistingDirectory(NULL, "Open Folder", "F:\\FocusImgs\\imgs\\a1"); if (mFolderPath.isEmpty()) return; // 获取所有文件名 ...

    头文件包含

    #include <QFileDialog>
    

    代码实现

    获取指定文件夹下的所有文件(*.tiff *.tif):

    	mFolderPath = QFileDialog::getExistingDirectory(NULL, "Open Folder", "F:\\FocusImgs\\imgs\\a1");
    	if (mFolderPath.isEmpty()) return;
    	// 获取所有文件名
    	QDir dir(mFolderPath);
    	mFolderPath = dir.fromNativeSeparators(mFolderPath);//  "\\"转为"/" 
    	if (!dir.exists()) mImgNames = QStringList("");
    	dir.setFilter(QDir::Files);
    	dir.setSorting(QDir::Name);
    	dir.setNameFilters(QString("*.tiff;*.tif").split(";"));
    	mImgNames = dir.entryList();
    	for (int i = 0; i < mImgNames.size(); ++i)
    	{
    		qDebug() << "entryList: " << i << "-" << mFolderPath + "/" +mImgNames[i];
    	}
    
    

    获取指定文件夹下的所有文件夹:

    	// 获取所有文件夹名
    	QDir dir(mFolderPath);
    	mFolderPath = dir.fromNativeSeparators(mFolderPath);//  "\\"转为"/" 
    	if (!dir.exists()) mImgNames = QStringList("");
    	dir.setFilter(QDir::Dirs | QDir::NoDotAndDotDot);
    	dir.setSorting(QDir::Name);
    	mImgNames = dir.entryList();
    	for (int i = 0; i < mImgNames.size(); ++i)
    	{
    		qDebug() << "entryList: " << i << "-" << mFolderPath + "/" +mImgNames[i];
    	}
    
    

    转载:https://blog.csdn.net/birenxiaofeigg/article/details/103768925

    展开全文
  • 头文件包含 ...获取指定文件夹下所有文件(*.tiff *.tif): mFolderPath = QFileDialog::getExistingDirectory(NULL, "Open Folder", "F:\\FocusImgs\\imgs\\a1"); if (mFolderPath.isEmpty()) re...
  • python 获取指定文件夹下所有文件名

    万次阅读 多人点赞 2018-04-13 11:19:43
    使用os模块可以获取指定文件夹下所有文件名,有两个方法os.walk()和os.listdir().(1)os.walk可以用于遍历指定文件下所有的子目录、非目录子文件。import os filePath = 'C:\\myLearning\\pythonLearning201712\\...
  • 通过一番找资料,整理出两种递归获取指定文件夹下所有文件夹、文件的方法。 方式一,使用os.walk(path)函数获取 使用该函数需要导入os模块。 import os 函数返回元素是(文件夹,[文件夹下的文件夹列表],[文件夹...
  • 程序分为两步,第一步,采用递归的方式获得文件夹下所有文件的路径列表;第二步,从文件路径列表中根据后缀利用.endswith(后缀)的方法筛选指定文件。直接上完整程序,说明以注释的方式给出。 程序中涉及到了 list...
  • .NET获取指定文件夹下所有文件

    千次阅读 2015-06-06 00:06:32
    .NET获取指定路径所有文件
  • java获取指定文件夹下所有文件

    万次阅读 2018-11-11 15:11:53
    System.out.println("文件"); System.out.println("path=" + file.getPath()); System.out.println("absolutepath=" + file.getAbsolutePath()); System.out.println("name=" + file.getName()); } else if ...
  • .NET获取文件夹下所有文件下指定类型的文件路径 很早以前就有了来CSDN写博客的想法。无论是技术还是表达,都与各位老博主相差甚远。所以在这里只是做一个学习的记录,可能会有技术错误,希望各位朋友们及时指正...
  • C++ 获取指定文件夹下指定后缀名文件
  • Unity获取指定文件夹下所有文件

    千次阅读 2019-12-27 09:47:14
    //获取指定路径下面的所有资源文件 if ( Directory . Exists ( path ) ) { DirectoryInfo direction = new DirectoryInfo ( path ) ; FileInfo [ ] files = direction . GetFiles ( "*" ) ; ...
  • 获取指定文件夹下所有相对路径(包括子文件夹路径) NSFileManager *mgr = [NSFileManagerdefaultManager]; NSArray *subpaths = [mgr subpathsAtPath:@"/Users/lxf/Desktop/test"]; NSLog(@"%@", subpaths); ...
  • http://www.cnblogs.com/asxinyu/archive/2011/01/19/1938798.html<br />  /// <summary><br /> /// 获取指定文件夹下所有文件名称  /// </summary><br /> /// 指定文件夹名称,绝对路径...
  • &lt;strong&gt;VBA获取文件夹下所有文件,或子文件目录的文件&lt;/strong&gt; '-----------------------------------
  • 方法整体分两步,第一步递归获取所有文件 def getAllSub(path): Dirlist = [] Filelist = [] for home, dirs, files in os.walk(path): # 获得所有文件夹 for dirname in dirs: Dirlist.append(...
  • java获取指定文件夹下所有文件名

    万次阅读 多人点赞 2016-09-26 14:44:05
    java获取指定文件夹下的所有文件名使用递归方法,获取指定文件夹下的所有文件名输出所有文件名,前置空格表示文件夹层次结构如下图所示: 代码import java.io.File; /** * * 该类可以输出指定路径下所有的...
  • DirectoryInfo folder = new DirectoryInfo(Application.streamingAssetsPath+"/FilesName"); var files = folder.GetFiles("*.txt"); Debug.Log("files count :" + files.Length); for(int i = 0;...
  • 最近vb2005写了个WinCE的程序,需要采集器读取本机指定文件夹内的文件名,并通过文件名处理每个文件里的内容。 请各位高手指点一下,这个问题困扰我好几天了,一直找不到好的解决办法,再次谢过。 比较着急,有此类...
  • /// /// 获取某个文件夹下指定后缀的文件 /// /// 文件夹 /// 可以指定多种格式,如"*.txt|*.mp3" /// 查找选项 /// public IList GetFiles(DirectoryInfo directory, string filter, S
  • 比如我想获得C:\zjut-project\... 这个文件夹下所有.jpg的文件的所在路径及文件名 就是 C:\zjut-project\smartFrige\IntelligentCloudCabinet-4内存\IntelligentCloudCabinet\test_20180921193205\fame.jpg

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 298,180
精华内容 119,272
关键字:

获取指定文件夹下的所有文件