2008-12-31 60 views
1

我是从外部服务器ftp'ing文件,然后在外部服务器上删除它们,并且一个文件由于文件名中有空格而失败。我改变了我的ftp delete命令来引用文件名。在ftp删除命令中不允许使用哪些字符?

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

但是,有没有其他字符,用户可能会使用它们的文件名创建,我的程序仍然会窒息?我无法控制这些文件名可能是什么。

(我把SSIS和SQL Server的一个标签,因为我动态创建FTP任务,从两侧的SSIS pakcage。操作系统是Win XP的)的FTP的

回答

2

不允许任何由文件系统保留的字符。这通常包括空格,逗号,斜线,冒号,排队标记,双引号等等。但是正如JaredPar所提到的那样,空间可能是唯一的通用罪犯,因为每个文件系统都有自己的一组保留字符,这些保留字符并不总是重叠。

它是一个好主意,以URL编码任何FTP或HTTP路径。这会将空间转换为通常应该由ftp服务器理解的%20。

+0

哦!这听起来像一个好主意。 – thursdaysgeek 2008-12-31 23:00:08

0

见5.3 RFC (RFC 959)。除CrLf之外,实际上没有任何非法字符作为文件名的一部分是非法的。

问题是要知道目标服务器会呛什么字符与非法的FTP字符。我猜测除了太空之外,没有太多的角色会引起问题。但我不是FTP专家。

相关问题