FTP的虚拟文件系统

时间:2012-02-23 21:10:06

标签: python ftp filesystems uac sftp

我从这里开始阅读Python中的FileSystem文档: http://packages.python.org/fs/filesystems.html

在花时间阅读它和一些Google-ing后,我找不到我想要的答案。我想知道是否可以使用Python,并避免在Windows上出现任何UAC问题,如果你可以在Windows资源管理器中“挂载”或显示一个免费的FTP服务器上的文件,那么任何其他应用程序都可以从中读取。

这可能吗?实现它的最佳方法是什么?提前谢谢!

3 个答案:

答案 0 :(得分:2)

Windows资源管理器内置了对FTP instructions with screenshots here

的支持
  
      
  1. 打开Windows资源管理器(我的电脑)
  2.   
  3. 右键单击文件夹中的任意位置,然后单击“添加网络位置”。
  4.   
  5. 这将显示“添加网络连接”向导。单击“下一步”。
  6.   
  7. 在向导中,选择“选择自定义网络位置”,然后单击“下一步”。
  8.   
  9. 输入FTP站点的名称,前面有完整的FTP://,然后单击“下一步”(例如,如果您的域名是DOMAIN.NET,则全名应如下所示:)
  10.   
  11. 要使用名称和密码,请清除“匿名登录”复选框。键入您的FTP帐户用户名,然后单击“下一步”。
  12.   
  13. 默认情况下,快捷方式的名称与FTP地址相同。如果要为快捷方式指定其他名称,请在“键入此网络位置的名称”框中键入该名称。单击“下一步”。
  14.   

您甚至可以从标准的“文件”对话框中使用它。这够了吗?

[更新]

  

出于好奇,这是否支持FTPS和/或SFTP? - 安德烈卡隆

@AndréCaron:我认为支持使用SSL的WebDAV,但不支持SFTP或FTPS。有Swish(开源)或Expandrive(付费软件)等扩展程序。

答案 1 :(得分:1)

这是一件非常重要的事情,并且不存在通过某些魔法python代码提供os级功能的事情。

模仿您的意图的可能解决方案可能是创建一个映射到ftp-server的本地webdav代理。我知道有一个功能将webdav网络设备连接到本地驱动器号,但因为我上次触摸Windows系统是... - 我甚至不记得 - 我不能告诉你,如果你也可以直接以这种方式附加ftp资源。

我想在python级别上寻找一个解决方案在短期内可能效率不高,即使在中期/长期也不可能没有大量的修修补补。

答案 2 :(得分:1)

虽然本身不​​是“文件系统”,但您可以提供Windows Explorer Namespace Extension,这将允许Windows资源管理器浏览任何虚拟文件系统。例如,这用于实现ZIP存档的浏览。请注意,这不提供真正的文件系统驱动器,因此它不允许您使用常规文件I / O函数打开此命名空间扩展的内容。

命名空间扩展是用COM编写的,可以implement COM interfaces in Python

AFAIK,您需要的唯一权限是安装命名空间扩展(COM DLL,以及命名空间注册)。其他所有内容都在登录用户的上下文中运行,不需要特殊权限。