如何使用C#将ftp共享文件夹映射到本地驱动器?

如何使用C#将ftp共享文件夹映射到本地驱动器? 有没有可用的类库?

我需要使用FTP实现与NetDrive( http://www.netdrive.net/ )相同的function吗?

也许你可以利用别人的工作并获得一个开端。 例如,NetDrive的制造商提供了一个SDK – 但不确定需要什么/成本。 但值得一探究竟,不是吗?

也许,如果您将这种方法结合起来将远程FTP站点定义为Windows网络共享,然后在C#中使用此代码将网络共享作为驱动器安装,您可能会完成工作:-)

这是一个非常高的订单 – 如果你真的想要一个本地驱动器,例如X:\,来访问一个FTP站点,你肯定需要编写一个驱动程序。 这不是一件容易的事

如果您希望它只是出现在Windows资源管理器中的某个位置 – 您可以使用shell扩展,如Marco的回答所示。 但是不要指望它能够像常规驱动器一样对待它。

要在现有驱动器上创建虚拟驱动器或文件夹并以这种方式公开远程FTP服务器内容,您需要一个文件系统驱动程序。 或者使用我们的回调文件系统(CBFS)产品,它允许您以用户模式编写代码,并包含预先创建的文件系统驱动程序。 CBFS包含一个样本SFTPDisk,它可以完全满足您的需求,但使用SFTP协议(SFTP不是FTP而是SSH文件传输协议)。

请注意,在FTP中,没有将块上传到现有文件中间的function。 这使得某些文件写入操作比使用SFTP或本地文件系统更复杂 – 您可能需要缓存整个文件并在客户端关闭时异步上载它。

在C#中有一个项目使用FTP文件夹作为虚拟驱动器 – > http://amalgam.codeplex.com/ (它使用dokan)。

有一个免费软件程序可以做同样的事情 – > http://www.ferrobackup.com/ftpuse/