我在第2行到最后一行找不到路径(fso.CopyFile)。
FullFileLocationFrom = (see below)
ActualDBFileName = (see below)
NoNameFileLocationTo = GetDocumentRoot & "\temp\" & TempFileGUID
FullFileLocationTo = NoNameFileLocationTo & "\" & ActualDBFileName
If Not fso.FolderExists (NoNameFileLocationTo) Then
CreateFolderPath NoNameFileLocationTo
End If
If fso.FileExists (FullFileLocationFrom) Then
fso.CopyFile FullFileLocationFrom, FullFileLocationTo, True 'This line gives PathNotFound error
End If
这是ActualDBFileName的值:
Orignal - 重新设计 - 使用分区 - 结果清晰 - 重新组 - 房间注册 - 更改G-R2窗口大小(Arcola Street,E7 - 3)_ROL - TEST.xls
这是FullFileLocationFrom:
的值E:\ Hello \ Work \ P \ Pavledes \ Court REVIEW - ROL - 15-21& 27 Arcola St \ MODEL \ Orignal - 重新设计 - 使用分区 - 结果清晰 - 重组 - 房间注册 - 更改G-R2窗口大小(Arcola Street,E7 - 3)_ROL - TEST.xls
这是FullFileLocationTo的值:
E:\ inetpub \ vhosts \ HEllo.com \ subdomains \ admin \ httpdocs \ Documents \ temp {0ABF2698-6F8B-4A73-9E5A-D6FD9E9E0708} \ Orignal - Redesign - With Partition - Clear Results - Re Group - Rooms registered - 更改G-R2窗口大小(Arcola Street,E7 - 3)_ROL - TEST.xls
我已经在不同的论坛上查看了不同的stackoverflow问题,但还没有解决方案解决了我的问题。
答案 0 :(得分:2)
错误是因为FullFileLocationTo:路径名是268个字符,但Windows API限制是260个字符,这导致“找不到路径”异常,因为它无法创建指定的路径。
答案 1 :(得分:0)
- 不要在目录名或文件名中使用以下字符, 因为它们是保留的:
\\.\
来自https://msdn.microsoft.com/en-au/library/windows/desktop/aa365247(v=vs.85).aspx
这些是窗口规则,即规则窗口的程序如下。底层文件系统可以存储任何支持任何操作系统所需的字符。但是,如果不遵守窗口规则,Windows功能就会出现问题。
有时您可以使用\\.\C:\autoexec.bat
(var handlingController = this.ViewContext.RouteData.Values["controller"].ToString();
)为文件名添加前缀。如果程序只是将它传递给Window的API函数,那么它将禁止文件名检查。
答案 2 :(得分:0)
我认为@ravp是正确的。这是Windows中的一个已知限制:
标准文件名必须少于260个字符,目录名必须少于248个字符。