你可以考虑使用映射网络驱动器的方式来实现啊。服务端开隐藏共享。共享名后加$。或者使用FTP服务器。推荐使用FTP服务器。
客户端映射网络驱动器。net use //机器名/share$ z:{虚拟盘符} password user(好像是这个命令,具体记不清了。)//访问是共享文件夹,当然换成FTP也是OK的了。
当然也可以编程实现。代码:
var
NetSource : TNetResource;
begin
with NetSource do
begin
dwType := RESOURCETYPE_ANY;
lpLocalName := X:;
// 将远程资源映射到此驱动器
lpRemoteName := //hqServer/sys;
// 远程网络资源
lpProvider := ; // 必须赋值,
如为空则使用lpRemoteName的值。
end;
WnetAddConnection2(NetSource, Password, Guest,
//用户名为Guest,口令为Password
CONNECT_UPDATE_PROFILE);
//下次登录时重新连接
//此时在Windows资源管理器中可看到网络驱动器X:
if MessageDlg(Are you sure to disconnect Drive ?,
mtConfirmation, [mbYes, mbNo], 0) = mrYes then
//不管是否有文件打开,断开网络驱动器X:
WNetCancelConnection2
( X:, CONNECT_UPDATE_PROFILE, True);
end;
在服务端,如果使用FTP,可以通过FTP建立虚拟文件夹,通过账户权限达到对每个用户使用不同文件的目的。但是可能需要自行开发FTP服务端或者安装FTP服务器。
使用windows的共享文件夹的话,服务端虚拟目录也是可以实现的。自己查找一下API,或者干脆调用dos命令实现。