SQL Server程序集中的非法字符问题

时间:2011-06-28 15:14:41

标签: c# database tsql stored-procedures assemblies

我正在使用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资源管理器中,但我无法访问该文件夹。

我可以做些什么来避免这些问题文件夹吗?

3 个答案:

答案 0 :(得分:3)

SPBKF3~L看起来像8.3缩短的文件名。你确定这不会发生在某个地方吗?

答案 1 :(得分:2)

~不是无效字符 - 我只是尝试创建一个名为SPBKF3~L的目录,我还编写了一个快速的C#应用​​程序来运行该目录上的示例代码,它工作正常

这里肯定会发生其他事情 - 你完全确定该目录是否存在? (尝试将路径复制并粘贴到资源管理器窗口中)

答案 2 :(得分:2)

检查G:\Photography\Archive\SPBKF3~L上的权限,并确保运行SQL Server实例的用户帐户可以看到该文件夹​​。