vb 编程中,想要获取指定文件夹下的文件夹名,例如D:\X轴\下的所有文件夹的名称,并显示在textbox中
4个回答
展开全部
' 查找指定目录下的文件夹,并显示在TextBox中,
' 需要一个TextBox控件,打开Multline属性,
' 每找到一个文件夹,便显示并换行
strPathTmp = "D:\X轴\"
strNameTmp = Dir(strPathTmp, vbDirectory)
Do While strNameTmp <> ""
If strNameTmp <> "." And strNameTmp <> ".." Then
If GetAttr(strPathTmp & strNameTmp) = vbDirectory Then
'在strPathTmp目录下找到文件夹strNameTmp
Text1.text = Text1.text & strNameTmp & Chr(13) + Chr(10)
End If
End If
strNameTmp = Dir
Loop
' 需要一个TextBox控件,打开Multline属性,
' 每找到一个文件夹,便显示并换行
strPathTmp = "D:\X轴\"
strNameTmp = Dir(strPathTmp, vbDirectory)
Do While strNameTmp <> ""
If strNameTmp <> "." And strNameTmp <> ".." Then
If GetAttr(strPathTmp & strNameTmp) = vbDirectory Then
'在strPathTmp目录下找到文件夹strNameTmp
Text1.text = Text1.text & strNameTmp & Chr(13) + Chr(10)
End If
End If
strNameTmp = Dir
Loop
更多追问追答
追问
您太厉害了,谢谢啊,还有一个问题就是想引用在text里面显示的文件夹名进行计算,如何对他们进行标记,就是如果text里面显示了三个文件夹名例如100,200,300,如果想要取100这个数据的话(在另外一个窗口引用),该怎么表示呢,呵呵,麻烦你了,谢谢
追答
用TextBox做这事挺麻烦,不如你把TextBox换成ListBox,这样原来的程序就变成:
strPathTmp = "D:\X轴\"
strNameTmp = Dir(strPathTmp, vbDirectory)
Do While strNameTmp ""
If strNameTmp "." And strNameTmp ".." Then
If GetAttr(strPathTmp & strNameTmp) = vbDirectory Then
'在strPathTmp目录下找到文件夹strNameTmp
lis.AddItem strNameTmp
End If
End If
strNameTmp = Dir
Loop
这样,以后你引用名称时,可以这样引用:
lis.List(lis.ListIndex) 'lis.ListIndex是你用鼠标选择的那一行。
或者
lis.ListIndex=xx 'xx表示的是列表的索引,意思是先定位到xx这一行。
y = Val(lis.Text) '取得对应索引的列表内容,y就是你要得到的文件名。
展开全部
X轴是什么意思 文件夹名称吗
更多追问追答
追问
是文件夹名称,想要获取的是D:\X轴\这个文件夹下的所有文件夹名
追答
一会的功夫这么多人回答
如果说你第二个问题没人回答的话,我再回答 我不跟他们抢 O(∩_∩)O哈哈~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Dim mypath As String
Dim myname As String
mypath = "D:\X轴\" ' 指定路径。
myname = Dir(mypath, vbDirectory) ' 找寻第一项。
Do While myname <> "" ' 开始循环。
' 跳过当前的目录及上层目录。
If myname <> "." And myname <> ".." Then
' 使用位比较来确定 MyName 代表一目录。
If (GetAttr(mypath & myname) And vbDirectory) = vbDirectory Then
'找到目录了,如果是你要的100目录则干活
if myname="100" then ' 如果它是一个目录,将其名称显示出来。
msgbox "你现在可以在另外的窗体中处理这个myname了"
end if
End If
End If
myname = Dir ' 查找下一个目录。
Loop
Dim myname As String
mypath = "D:\X轴\" ' 指定路径。
myname = Dir(mypath, vbDirectory) ' 找寻第一项。
Do While myname <> "" ' 开始循环。
' 跳过当前的目录及上层目录。
If myname <> "." And myname <> ".." Then
' 使用位比较来确定 MyName 代表一目录。
If (GetAttr(mypath & myname) And vbDirectory) = vbDirectory Then
'找到目录了,如果是你要的100目录则干活
if myname="100" then ' 如果它是一个目录,将其名称显示出来。
msgbox "你现在可以在另外的窗体中处理这个myname了"
end if
End If
End If
myname = Dir ' 查找下一个目录。
Loop
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
方法一:
利用DirBox控件,但隐藏的文件夹不能获取出来
代码如下:
Private Sub Command1_Click()
Dim i As Long, s As String, sT As String
Dir1.Path = "D:\123\"
Text1 = ""
For i = 0 To Dir1.ListCount - 1
sT = Dir1.List(i)
If Right(sT, 1) = "\" Then sT = Left(sT, Len(sT) - 1)
sT = Right(sT, Len(sT) - InStrRev(sT, "\"))
s = s & sT & vbCrLf
Next i
Text1 = s
End Sub
方法二:
利用FSO(引用Microsoft Scripting Runtime),能获取到隐藏的文件夹
代码如下:
Private Sub Command2_Click()
Dim FSO As New FileSystemObject, FSOFolders As Folders, FSOFolder As Folder
Dim s As String, sT As String
Set FSOFolders = FSO.GetFolder("D:\123\").SubFolders
For Each FSOFolder In FSOFolders
sT = FSOFolder.Path
If Right(sT, 1) = "\" Then sT = Left(sT, Len(sT) - 1)
sT = Right(sT, Len(sT) - InStrRev(sT, "\"))
s = s & sT & vbCrLf
Next
Text1 = s
End Sub
方法三:
利用API...(忘记了)...你可以百度下...
方法四:
利用Dir函数...楼上有讲...
不过,楼上的不能显示隐藏的和系统的文件夹,可以修改Dir的第二个参数
可以改为: vbDirectory Or vbHidden Or vbNormal Or vbReadOnly Or vbSystem
利用DirBox控件,但隐藏的文件夹不能获取出来
代码如下:
Private Sub Command1_Click()
Dim i As Long, s As String, sT As String
Dir1.Path = "D:\123\"
Text1 = ""
For i = 0 To Dir1.ListCount - 1
sT = Dir1.List(i)
If Right(sT, 1) = "\" Then sT = Left(sT, Len(sT) - 1)
sT = Right(sT, Len(sT) - InStrRev(sT, "\"))
s = s & sT & vbCrLf
Next i
Text1 = s
End Sub
方法二:
利用FSO(引用Microsoft Scripting Runtime),能获取到隐藏的文件夹
代码如下:
Private Sub Command2_Click()
Dim FSO As New FileSystemObject, FSOFolders As Folders, FSOFolder As Folder
Dim s As String, sT As String
Set FSOFolders = FSO.GetFolder("D:\123\").SubFolders
For Each FSOFolder In FSOFolders
sT = FSOFolder.Path
If Right(sT, 1) = "\" Then sT = Left(sT, Len(sT) - 1)
sT = Right(sT, Len(sT) - InStrRev(sT, "\"))
s = s & sT & vbCrLf
Next
Text1 = s
End Sub
方法三:
利用API...(忘记了)...你可以百度下...
方法四:
利用Dir函数...楼上有讲...
不过,楼上的不能显示隐藏的和系统的文件夹,可以修改Dir的第二个参数
可以改为: vbDirectory Or vbHidden Or vbNormal Or vbReadOnly Or vbSystem
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询