以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]文件路径太长问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=106584)

--  作者:lzzhx
--  发布时间:2017/9/12 10:11:00
--  [求助]文件路径太长问题
请教老师:
        想用代码遍历本机各文件夹,列出需要的文件,但出现“指定的路径或文件名太长,或者两者都太长”,该如何规避此错误?

--  作者:有点甜
--  发布时间:2017/9/12 11:24:00
--  
 有这个提示,就是说明你的文件名太长,不能超过260个字符的。
--  作者:客人
--  发布时间:2017/9/12 11:28:00
--  
这已是在系统中存在的文件夹和文件,在执行  FileSys.GetDirectores  语句时出现的错误,能不能在出现这个错误时拦截这个错误,继续执行下面的语句
--  作者:有点甜
--  发布时间:2017/9/12 11:39:00
--  

操作系统的路径名,最大字符不超过260,你拼凑的路径,肯定是不正确的路径。

 

你可以直接判断路径的字符长度,如

 

Dim str As String = "d:\\testtesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttes\\ttesttesttesttesttesttesttesttesttes\\tteststtesttesttesttesttesttesttesttesttesttesttesttesttesttesttest\\testtesttesttesttesttesttesttesttestteststtesttesttesttestteststtesttesttesttest\\"
msgbox(str.length)
If str.length < 260 Then
    FileSys.GetDirectories(str)
End If


--  作者:lzzhx
--  发布时间:2017/9/12 11:44:00
--  
我没有拼凑路径,我只是用 FileSys.GetDirectores读取系统中的文件夹路径,读出来后才加到树节点中,所以没法先判断是否超过限制
[此贴子已经被作者于2017/9/12 11:45:02编辑过]

--  作者:有点甜
--  发布时间:2017/9/12 13:49:00
--  
以下是引用lzzhx在2017/9/12 11:44:00的发言:
我没有拼凑路径,我只是用 FileSys.GetDirectores读取系统中的文件夹路径,读出来后才加到树节点中,所以没法先判断是否超过限制
[此贴子已经被作者于2017/9/12 11:45:02编辑过]

 

不可能。你文件夹路径就不能超过260个字符。你电脑不存在有这样的文件存在。

 

如果有,贴出它的路径看看。


--  作者:lzzhx
--  发布时间:2017/9/12 14:37:00
--  
老师:我把例子发上来,请您看看错误在什么地方
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:文件夹测试.zip


--  作者:有点甜
--  发布时间:2017/9/12 17:00:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:文件夹测试.foxdb