filename=dir("c:\*.*") i = 0 do while filename = "" array1 (i)=filename i = i + 1 filename = dir("c:\*.*") loop '//////////////////////////// 或 Dim strFile, strTmp, strFileArr() As String strFile = Dir("*.*", vbArchive) i = 1 While strFile <> "" strTmp = strTmp & "," & strFile i = i + 1 strFile = Dir Wend ReDim strFileArr(1 To i) strFileArr = Split(strTmp, ",")别人的代码,你试试看
昨天不是才有人在问吗? 1,文件夹和文件都访问 dir就可以实现, 先用ChDir 把当前路径改到需要的地方。然后用dir可以返回了,如果为空就立即退出循环,否则错误 ChDir "X:\xxx\" s=dir do until s="" debug.print s s=dir loop 2,只访问文件 用FileListBox,直接指定Path属性即可或者用以下方法 '引用Microsoft Scripting Rumtime Private Sub Form_Load() Dim Fso As New FileSystemObject Dim Fd As Folder Dim Fd1 As Folder Dim Fl As File Set Fd = Fso.GetFolder("C:") For Each Fd1 In Fd.SubFolders Debug.Print Fd1.Name Next For Each Fl In Fd.Files Debug.Print Fl.Name Next End Sub
以下实例列出指定目录(便中为D:\)下的所有文件名 及取得其后缀文件名!!!使用如下代码之前,先在工程-引用 Microsoft Scripting Runtime 库。 在窗体中添加一个按钮Command1,复制如下代码即可。功能:列举出D:\下的所有文件名,和对应扩展名 代码如下:Dim LfileSys As New Scripting.FileSystemObject Private Sub Command1_Click() Dim Lfiles As Files Dim lfile As File Dim i As Integer Dim strEx As String Dim strTmp As String Set Lfiles = LfileSys.GetFolder("D:\").Files For Each lfile In Lfiles i = InStrRev(lfile.Name, ".") strEx = Right(lfile.Name, Len(lfile.Name) - i + 1) strTmp = strTmp & vbCrLf & "文件名为: " & lfile.Name & Space(8) & strEx Next MsgBox strTmpEnd Sub
不管怎么做都要用遍历的方法??? Private Sub Command1_Click() dirs "c:\download" End SubSub dirs(ByVal mydir As String) If Dir("d:\xxxx.txt") > "" Then Kill "d:\xxxx.txt" Shell "cmd.exe /C cd && dir " & mydir & "\*.* /b >> d:\xxxx.txt" Shell "notepad.exe d:\xxxx.txt", vbNormalFocus End Sub
i = 0
do while filename = ""
array1 (i)=filename
i = i + 1
filename = dir("c:\*.*")
loop
'//////////////////////////// 或
Dim strFile, strTmp, strFileArr() As String
strFile = Dir("*.*", vbArchive)
i = 1
While strFile <> ""
strTmp = strTmp & "," & strFile
i = i + 1
strFile = Dir
Wend
ReDim strFileArr(1 To i)
strFileArr = Split(strTmp, ",")别人的代码,你试试看
1,文件夹和文件都访问
dir就可以实现,
先用ChDir 把当前路径改到需要的地方。然后用dir可以返回了,如果为空就立即退出循环,否则错误
ChDir "X:\xxx\"
s=dir
do until s=""
debug.print s
s=dir
loop
2,只访问文件
用FileListBox,直接指定Path属性即可或者用以下方法
'引用Microsoft Scripting Rumtime
Private Sub Form_Load()
Dim Fso As New FileSystemObject
Dim Fd As Folder
Dim Fd1 As Folder
Dim Fl As File
Set Fd = Fso.GetFolder("C:")
For Each Fd1 In Fd.SubFolders
Debug.Print Fd1.Name
Next
For Each Fl In Fd.Files
Debug.Print Fl.Name
Next
End Sub
1.用filelistbox控件,这个最简单
2.用dir,同上
3.用api findfirst(),FindNext(),FindCLose()三个函数
在窗体中添加一个按钮Command1,复制如下代码即可。功能:列举出D:\下的所有文件名,和对应扩展名
代码如下:Dim LfileSys As New Scripting.FileSystemObject
Private Sub Command1_Click() Dim Lfiles As Files
Dim lfile As File
Dim i As Integer
Dim strEx As String
Dim strTmp As String Set Lfiles = LfileSys.GetFolder("D:\").Files
For Each lfile In Lfiles
i = InStrRev(lfile.Name, ".")
strEx = Right(lfile.Name, Len(lfile.Name) - i + 1)
strTmp = strTmp & vbCrLf & "文件名为: " & lfile.Name & Space(8) & strEx
Next MsgBox strTmpEnd Sub
Private Sub Command1_Click()
dirs "c:\download"
End SubSub dirs(ByVal mydir As String)
If Dir("d:\xxxx.txt") > "" Then Kill "d:\xxxx.txt"
Shell "cmd.exe /C cd && dir " & mydir & "\*.* /b >> d:\xxxx.txt"
Shell "notepad.exe d:\xxxx.txt", vbNormalFocus
End Sub