Какие символы запрещены в команде ftp Delete? - PullRequest
1 голос
/ 01 января 2009

Я ftp'ing файлы с внешнего сервера, затем удаляю их на внешнем сервере, и один файл не удалось, потому что в имени файла был пробел. Я изменил свою команду удаления ftp, чтобы заключить в кавычки имя файла.

ftpStream.WriteLine("delete """ & FileToDelete & """")

Но есть ли другие символы, которые пользователь может использовать при создании имени файла, которые моя программа все еще захлебнется? У меня нет никакого контроля, какими могут быть эти имена файлов.

(Я поместил тег SSIS и SQL Server, потому что я создаю задачу ftp на лету из пакета служб SSIS. ОС с обеих сторон - Win XP)

Ответы [ 2 ]

2 голосов
/ 01 января 2009

Любые символы, зарезервированные файловой системой, не будут разрешены. Обычно это пробелы, запятые, косые черты, двоеточия, метки кавычек, двойные кавычки и т. Д. Но, как упоминал JaredPar, пробел, вероятно, является единственным универсальным нарушителем, поскольку каждая файловая система имеет свой собственный набор зарезервированных символов, которые не всегда перекрываются.

хорошая идея, чтобы URL кодировал любые пути ftp или http. Это преобразует пробелы в% 20, что обычно должно быть понято сервером ftp.

0 голосов
/ 01 января 2009

См. Раздел 5.3 FTP RFC (RFC 959) . На самом деле нет никаких недопустимых символов, кроме CrLf, которые являются недопустимыми как часть имени файла.

Проблема в том, что зная, какие символы будет использовать целевой сервер по сравнению с недопустимыми символами FTP. Я предполагаю, что, кроме пробела, не слишком много символов, которые могут вызвать проблемы. Но я не эксперт по FTP.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...