如何返回 目录中 子文件夹 名字

红衣老大 2011-04-28 09:48:37
假设
C:\test 下有 AAA BBB CCC TTT001[TTT开头+数字编号]


已知路径 C:\test 要求返回 ttt开头 文件夹的名称 应该只有一个
...全文
126 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
红衣老大 2011-04-28
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 wwwwb 的回复:]
建议用递归查询来解决,如果你的目录有N层的话
[/Quote]

谢谢 这次 只有一层 就不用递归了

下载在用
wwwwb 2011-04-28
  • 打赏
  • 举报
回复
建议用递归查询来解决,如果你的目录有N层的话
红衣老大 2011-04-28
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 apple_8180 的回复:]
VB code

lcDefaultPath=Sys(5)+Sys(2003)
Set Default To c:\test
nCount=Adir(aDirArray,'ttt*','D')
If nCount>0
For I=1 To nCount
Messagebox(aDirArray(I,1))
Endfor
Else
Mess……
[/Quote]

我使用了这个方法 比较简洁

lcDefaultPath=Sys(5)+Sys(2003)

Set Default To (lcDefaultPath)
是不是保护现场 的意思
wwwwb 2011-04-28
  • 打赏
  • 举报
回复
递归查询:
PUBLIC FF AS Character
FF=""
DO MyProc1 WITH "R:\TEMP"


PROCEDURE MyProc1
LPARAMETERS Folder
fso=CREATEOBJECT("Scripting.FileSystemObject")
objFolder = fso.GetFolder(Folder)
*k = k + objFolder.Files.Count

For Each objFolder In objFolder.SubFolders
?objFolder.NAME
IF UPPER(LEFT(objFolder.NAME,3))='TTT'
?objFolder.NAME
ENDIF
DO MyProc1 WITH objFolder
NEXT
ENDPROC
十豆三 2011-04-28
  • 打赏
  • 举报
回复

lcDefaultPath=Sys(5)+Sys(2003)
Set Default To c:\test
nCount=Adir(aDirArray,'ttt*','D')
If nCount>0
For I=1 To nCount
Messagebox(aDirArray(I,1))
Endfor
Else
Messagebox('此目录下没有 ttt 开头的文件夹',48,'信息提示')
Endif
Set Default To (lcDefaultPath)
都市夜猫 2011-04-28
  • 打赏
  • 举报
回复
* 假设只有一个 ttt 开头的文件夹,即使有多个也只返回最先找到的那一个

cRet = ''
cOldDir = sys(5) + curdir()
set defa to c:\test
if adir(aTemp, 'ttt*', 'D') > 0
for ii = 1 to alen(aTemp,1)
if at('D', aTemp[ii,5]) > 0
cRet = aTemp[ii,1]
exit
endif
endfor
endif
set defa to (cOldDir)

if empty(cRet)
? '没找到'
else
? cRet
endif

2,748

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧