我正在使用C#中的Directory.GetFiles。此代码将转换为程序集,然后在T-SQL脚本中使用。以下是我认为是问题的代码行:
C#代码:
string[] filePaths = Directory.GetFiles(path, ext, SearchOption.AllDirectories);
错误(T-SQL脚本):
System.IO.DirectoryNotFoundException:找不到路径'G:\ Photography \ Archive \ SPBKF3~L'的一部分。
我假设代字号不是用于Windows中文件夹名称的合法字符,因为导致此错误的唯一文件夹是具有代字号的文件夹。这些文件在Mac和Windows系统之间共享,我发现文件和文件夹名称在过去一直是个问题。
我很难理解为什么Directory.GetFiles方法甚至会找到一个不存在的目录。该文件夹显示在Windows资源管理器中,但我无法访问该文件夹。
我可以做些什么来避免这些问题文件夹吗?
答案 0 :(得分:3)
SPBKF3~L看起来像8.3缩短的文件名。你确定这不会发生在某个地方吗?
答案 1 :(得分:2)
~
不是无效字符 - 我只是尝试创建一个名为SPBKF3~L
的目录,我还编写了一个快速的C#应用程序来运行该目录上的示例代码,它工作正常
这里肯定会发生其他事情 - 你完全确定该目录是否存在? (尝试将路径复制并粘贴到资源管理器窗口中)
答案 2 :(得分:2)
检查G:\Photography\Archive\SPBKF3~L
上的权限,并确保运行SQL Server实例的用户帐户可以看到该文件夹。