使用绝对目录创建文件夹树> 256个字符?

时间:2012-05-08 16:50:33

标签: excel vba windows-7 excel-vba

我有一个Excel VBA宏,可以根据excel文件创建一个文件夹树。

我目前的问题是,每次绝对目录变得非常长时,我似乎都会收到错误。

程序将抛出运行时错误76(找不到路径)。我觉得这是因为脚本引用了超过256个字符的绝对路径。

这有什么解决方法吗?或者我唯一的选择是缩短文件夹名称,从而缩短绝对路径字符串?

修改

我正在使用的代码如下:

Dim asheet As Range, r As Range, c As Range
Dim fPath As String, tmp As String

Set asheet = ActiveSheet.UsedRange

For Each r In asheet.Rows
    fPath = DEST_FOLDER
    For Each c In r.Cells
        tmp = Trim(c.Value)
        If Len(tmp) = 0 Then
            Exit For
        Else
            tmp = Clean(tmp)
            fPath = fPath & tmp & "\"
            If Len(Dir(fPath, vbDirectory)) = 0 Then MkDir fPath
        End If
    Next c
Next r

Clean()是一个自定义函数,它只是从字符串中删除特殊字符,即!,#,_,@,$,&,*,^和%。

我是否可以使用另一种方法来创建这些文件夹,这些文件可能会使用相对路径而不是绝对路径?

1 个答案:

答案 0 :(得分:0)

在某些情况下,Windows API有limit of 260 characters(C:\ + 256个字符+)。如果您参考上一个问题,是否尝试使用SHFileOperationW代替SHFileOperationA