2008-12-31 61 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專家。

相關問題