Dim fso     As New FileSystemObjectFor Each file In Folder.Files                   
       Debug.Print file     '输出文件名
Next请问我怎么才能让它按照文件名顺序来输出文件名呢?还是默认它就是按文件名顺序来输出的?
虽然我在本机试验时它能按文件名顺序来输出,但是我不能确认它在别的机器上也这样

解决方案 »

  1.   

    默认顺序如果不是按文件名排序,就是以文件在目录中保存的顺序排序。
    你做一个实验:
    ·新建一个目录,比如c:\test
    ·用记事本在c:\test目录下按B.txt、A.txt、C.txt的先后次序分别保存三个文件
    ·运行上面的程序,看输出顺序是什么。
    如果是
    B.txt
    A.txt
    C.txt
    说明默认顺序是以文件在目录中保存的顺序排序;
    如果是
    A.txt
    B.txt
    C.txt
    说明默认顺序是按文件名排序。
      

  2.   

    VB的话劝楼主用
    Shell("cmd /c dir /a-d /b /s /on c:\test\*.* >c:\allfiles.txt",vbHide)
    '然后读文件c:\allfiles.txt的内容
    优点是想怎么排序就怎么排序,参考下面:
    c:\>dir /?
    显示目录中的文件和子目录列表。DIR [drive:][path][filename] [/A[[:]attributes]] [/B] [/C] [/D] [/L] [/N]
      [/O[[:]sortorder]] [/P] [/Q] [/S] [/T[[:]timefield]] [/W] [/X] [/4]  [drive:][path][filename]
                  指定要列出的驱动器、目录和/或文件。  /A          显示具有指定属性的文件。
      attributes   D  目录                R  只读文件
                   H  隐藏文件               A  准备存档的文件
                   S  系统文件               -  表示“否”的前缀
      /B          使用空格式(没有标题信息或摘要)。
      /C          在文件大小中显示千位数分隔符。这是默认值。用 /-C 来
                  停用分隔符显示。
      /D          跟宽式相同,但文件是按栏分类列出的。
      /L          用小写。
      /N          新的长列表格式,其中文件名在最右边。
      /O          用分类顺序列出文件。
      sortorder    N  按名称(字母顺序)       S  按大小 (从小到大)
                   E  按扩展名(字母顺序)  D  按日期/时间(从早到晚)
                   G  组目录优先    -  颠倒顺序的前缀
      /P          在每个信息屏幕后暂停。
      /Q          显示文件所有者。
      /S          显示指定目录和所有子目录中的文件。
      /T          控制显示或用来分类的时间字符域。
      timefield   C  创建时间
                  A  上次访问时间
                  W  上次写入的时间
      /W          用宽列表格式。
      /X          显示为非 8dot3 文件名产生的短名称。格式是 /N 的格式,
                  短名称插在长名称前面。如果没有短名称,在其位置则
                  显示空白。
      /4          用四位数字显示年可以在 DIRCMD 环境变量中预先设定命令选项。通过添加前缀 - (破折号)
    来替代预先设定的命令选项,例如,/-W。
      

  3.   

    Public   Sub   SeachFile(ByVal   strPath   As   String) 
            Dim   Fso   As   Object 
            Dim   Fol   As   Object 
            Dim   Fil   As   Object 
            Set   Fso   =   CreateObject( "Scripting.FileSystemObject ") 
            Set   Fol   =   Fso.GetFolder(strPath) 
            
            For   Each   Fil   In   Fol.Files 
    '                 Debug.Print   Fil.Path       '打印路径及文件名 
                    Debug.Print   Fso.GetExtensionName(Fil.Path)   '打印文件的后缀名 
            Next 
            '遍历子目录 
            For   Each   Fol   In   Fol.SubFolders 
                      SeachFile   Fol 
            Next 
    End   Sub 以上也可以试