Проблема с недопустимыми символами в сборке SQL Server - PullRequest
2 голосов
/ 28 июня 2011

Я работаю с Directory.GetFiles в C #. Этот код превращается в сборку, которая затем используется в сценарии 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 ]

3 голосов
/ 28 июня 2011

SPBKF3 ~ L выглядит подозрительно, как сокращенное имя файла на 8.3. Вы уверены, что это не где-то происходит?

2 голосов
/ 28 июня 2011

Проверьте разрешения на G:\Photography\Archive\SPBKF3~L и убедитесь, что учетная запись пользователя, под которым работает экземпляр SQL Server, может видеть папку.

2 голосов
/ 28 июня 2011

~ не является недопустимым символом - я только что попытался создать каталог с именем SPBKF3~L, и я также написал быстрое приложение на C # для запуска примера кода в этом каталоге, и оно работало нормально.

Здесь должно происходить что-то еще - вы абсолютно уверены , что каталог существует?(попробуйте скопировать и вставить путь в окно проводника)

...