2012-10-04 144 views
1

我需要將ftp映射到c#上。將ftp映射到C#驅動器#

我使用這個SO question一個答案,但它只能本地文件夾(我認爲)

我的代碼:

Subst.MapDrive('q', @"ftpServerName"); 

不起作用。

+1

我不確定這個'Subst'類來自哪裏,但是如果它與'subst.exe'實用程序有關的任何東西只允許你用驅動器號來別名本地或SMB目錄,而且我不相信適用於FTP。無論如何,當你說你的代碼「不起作用」時,你應該詳細說明你的意思。 – BACON

回答

1

這不是微不足道的。第一個問題是FTP不是文件系統訪問協議,並且不可能基於標準FTP命令來實現全功能文件系統。但對於只讀文件系統FTP是好的。

現在,您無法輕鬆將任何遠程映射到Windows中的驅動器盤符。你需要編寫一個內核模式的虛擬文件系統驅動程序。一年左右的工作。

我們的Callback File System提供了一個預建的驅動程序,它調用您的用戶模式代碼來執行實際的作業。這樣你就可以用C#創建一個虛擬文件系統。我們有一個示例項目,它是我們的SFTP網絡驅動器免費軟件產品的簡化版本,它通過SFTP(SFTP是基於SSH的協議,提供低級文件操作並可用於虛擬文件系統) 。但對於FTP,你仍然有上面提到的寫入問題,可能還有重命名。

+0

謝謝,謝謝!我可以在Windows資源管理器中打開我的ftp。所有我需要的 - 它只是鏈接我的FTP文件夾以便於使用! – jimpanzer

+0

@ user1616443您在資源管理器中看到的內容不是磁盤文件夾,而是虛擬名稱空間。您不能將其作爲其他應用程序可用的磁盤(某些應用程序可以使用虛擬命名空間,但大多數不能)。 –