模拟网络共享以共享文件

时间:2012-09-10 01:52:17

标签: c# networking window file-sharing

程序通常需要一个恰好位于网络位置的文件。以Outlook为例。如果我将outlooks数据库(.pst文件)放在网络位置,那么windows将使用户“透明”,并且Outlook仍然可以工作。另一个例子可能是quickbooks等等。 (只要你有阅读和阅读的权限)

对于此示例,我们使用Microsoft Word。如果我想在网络中的其他计算机中打开文件,我将能够导航到:

enter image description here

并打开我想要的文件,因为我们在同一个网络上。

现在我的问题我将如何模拟它?我希望在互联网上有一个虚拟目录,我可以放下我的.pst文件,然后从Windows资源管理器中选择它:

enter image description here

(这个例子显然不起作用)

可以这样做吗?我相信Windows使用与主机的TCP连接,然后主机响应它共享的文件。我想实现一个程序,这样我就可以避免创建一个VPN。如果我可以在互联网上拥有我的pst(outlook数据库文件)以便我的所有计算机都打开相同的Outlook数据库,那也很好。

请注意,此问题的目的是在网络位置打开Outlook数据库文件。我希望能够从windows open file dialog在互联网上选择一个文件。同样在今天的世界里,一切都存在。我想创建它lol

2 个答案:

答案 0 :(得分:3)

Windows为CIFS(通用Internet文件系统,以前称为SMB服务器消息块)资源提供网络重定向器。编写CIFS服务器是最简单的方法。

但您也可以使用其他现有重定向器之一,例如NFS,WebDAV或Netware。并且还可以编写新的重定向器(虽然这需要内核模式代码,但有一些开发工具包可以为您提供内核代码,类似于Linux FUSE文件系统)。

如果您想避免编写代码,通过HTTPS的WebDAV将为您提供安全访问(不需要VPN层),并且软件已经存在。

答案 1 :(得分:-1)

这取决于互联网上的服务器如何设置以使其文件可用。大多数情况下tcpip不是用于此的协议 - 它是FTP,SFTP,HTTP或类似的东西。我相信Windows资源管理器使用本地网络上的RPC调用来完成此任务。我不认为您将能够使用“打开文件”对话框,您必须编写类似于您需要使用的协议的类似内容。