在服务器和客户端(delphi)应用程序之间共享路径

时间:2015-03-25 14:09:19

标签: delphi share lan

在我的局域网上,我有两个在Delphi开发的服务器/客户端模式下运行的应用程序(但我不认为这很重要)。 在服务器PC(运行服务器应用程序)上有一个USB硬盘,这个硬盘有许多在LAN上共享的文件夹和子文件夹。 现在我需要这样做: 1.服务器应用程序必须向客户端应用程序发送共享文件夹(例如" d:\ folder \ subfolder \&#34 ;,然后客户端应用程序必须打开此路径以显示文件(使用资源管理器)。 2.用户使用客户端应用程序必须选择共享文件夹(例如" \ SERVER \ folder \ subfolder \")并将其发送到服务器应用程序,服务器应用程序必须在本地路径中转换此路径(例如" d:\ folder \ subfolder \")并将其保存在数据库中。

我的问题是:有一种简单的方法: 1.将本地路径转换为远程路径,然后将其发送到客户端,客户端可以轻松打开它吗? 2.将远程路径转换为本地路径,然后将其保存在数据库中。

注意:共享硬盘的主文件夹或主驱动器可以更改。 注意2:如果可能的话,我想使用IP地址而不是Windows PC名称,因为它可以更改。

我希望我解释过。

由于

1 个答案:

答案 0 :(得分:0)

如果我理解正确,您想要访问某些共享文件夹中的某些文件。对?

如果这是真的,那么去访问这些文件,取消以这种方式形成的网络路径

\\Networkedcomputer\SharedFolderName\Subfolder\...

其中:

  • NetworkComputer是共享该文件夹或其IP地址的计算机的名称。我认为您对使用IP地址感兴趣,因为您已经可以从其他网络组件访问该信息。
  • SharedFolderName是将特定filder设置为在网络上共享时选择的网络名称。此名称doesen甚至必须与实际文件夹的名称相同
  • Subolder可以是共享文件夹的任何子文件夹

要获得共享文件夹的网络路径,您需要知道共享文件夹的网络名称。

也许您甚至可以从SelectDirectory方法中检索此信息,该方法显示用于选择目录的特殊对话框,但我不确定它是否支持网络文件夹。如果没有,你可以使用OpenDialog 注意:在使用SelectDirectory或OpenDialog选择共享文件夹的任何情况下,您都需要通过网络位置(网络 - > MyComputerName)转到该文件夹​​,而不是直接通过MyComputer。

但是如果您需要以编程方式获取任何本地文件夹的共享名称,我认为您必须从注册表中读取该信息,因为我不确定是否存在针对此的特定API调用。

编辑:以下SO问题的答案是指几个可用于管理共享网络资源的Delphi组件。所以我猜你可以用来检索共享本地文件夹的网络路径,但我还没有尝试过。 How do I remotely obtain a system's network shares and connections?