我正在使用 C# 中的 Directory.GetFiles。此代码被转换为程序集,然后在 T-SQL 脚本中使用。这是我认为是问题所在的代码行:
C#代码:
string[] filePaths = Directory.GetFiles(path, ext, SearchOption.AllDirectories);
错误(T-SQL 脚本):
System.IO.DirectoryNotFoundException: Could not find a part of the path 'G:\Photography\Archive\SPBKF3~L'.
我假设波浪号不是 Windows 中用于文件夹名称的合法字符,因为导致此错误的唯一文件夹是带有波浪号的文件夹。这些文件在 Mac 和 Windows 系统之间共享,我发现文件和文件夹名称在过去一直是一个问题。
我很难理解为什么 Directory.GetFiles 方法甚至会找到一个不存在的目录。该文件夹显示在 Windows 资源管理器中,但我无法访问该文件夹。
我可以做些什么来避免这些有问题的文件夹吗?
最佳答案
SPBKF3~L 看起来很像一个 8.3 缩短的文件名。您确定这不会在某处发生吗?
关于c# - SQL Server 程序集中的非法字符问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6508768/