Sql server ftp Delete命令中不允许使用哪些字符?

Sql server ftp Delete命令中不允许使用哪些字符?,sql-server,ssis,ftp,Sql Server,Ssis,Ftp,我正在从外部服务器ftp文件,然后在外部服务器上删除它们,但有一个文件失败,因为文件名中有空格。我将ftp delete命令更改为在文件名周围加引号 ftpStream.WriteLine("delete """ & FileToDelete & """") 但是,用户在创建文件名时是否还会使用其他字符,而我的程序仍然会被这些字符阻塞?我无法控制这些文件名可能是什么 (我在SSIS和SQL Server上加了一个标签,因为我正在从SSIS pakcage动态创建ftp任务。两侧

我正在从外部服务器ftp文件,然后在外部服务器上删除它们,但有一个文件失败,因为文件名中有空格。我将ftp delete命令更改为在文件名周围加引号

ftpStream.WriteLine("delete """ & FileToDelete & """")
但是,用户在创建文件名时是否还会使用其他字符,而我的程序仍然会被这些字符阻塞?我无法控制这些文件名可能是什么


(我在SSIS和SQL Server上加了一个标签,因为我正在从SSIS pakcage动态创建ftp任务。两侧的操作系统都是Win XP)

请参阅ftp RFC的第5.3节。实际上,除了CrLf之外,没有任何非法字符作为文件名的一部分是非法的


问题在于知道目标服务器将阻塞哪些字符,而不是非法FTP字符。我猜除了空格之外,不会有太多的字符引起问题。但是我不是FTP专家。

文件系统保留的任何字符都是不允许的。这通常包括空格、逗号、斜杠、冒号、问号、双引号等。但正如JaredPar所提到的,空格可能是唯一的通用违规者,因为每个文件系统都有自己的保留字符集,它们并不总是重叠

对任何ftp或http路径进行url编码是个好主意。这将把空间转换为%20,ftp服务器通常应该理解这一点