delphi中,如何直接操作网络上远程“文件流”,或者如何虚拟盘符,将远程文件映射到本地,供本地系统使用

jinhx 2015-08-12 10:01:30
想用数据库做一个文档管理系统,文档保存在数据库中,或者远程服务器中,但又不想共享文件夹,想用DELPHI作虚拟盘符,映射远程文件流或文件
...全文
1112 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
lyhoo163 2015-11-28
  • 打赏
  • 举报
回复
jinhx 2015-11-28
  • 打赏
  • 举报
回复
或者这么说吧,我想不通过共享打开远程文件,并且实现排他
jinhx 2015-11-28
  • 打赏
  • 举报
回复
引用 5 楼 LinuxPing-WangPing的回复:
"客户端操作系统要用什么程序操作该文件未知" 用什么程序来读取远程的文件你都不知道, 服务器端怎么知道用什么“协议”来传回文件。。。。这是一个没法做的东西。
传文件和用什么程序打开没关系
jinhx 2015-11-28
  • 打赏
  • 举报
回复
引用 6 楼 lyhoo163的回复:
你的问题,也是想做的,初打完成。 一、在指定本地磁盘一个目录为共享目录:比如 D:\SharedFile
二、将D:\SharedPath,设置为虚拟盘 V:\
三、在服务器端,指定一个共享目录 D:\Server\SharedFile
四、客户端操作
(1)将D:\SharedFile文件(含子目录)全部上传至服务器 D:\Server\SharedFile
(2)下载共享文件,比较D:\SharedFile和D:\Server\SharedFile,同名文件创建时间和修改时间,实现更新下载。
(3)定时服务器与客户端文件的更新互传。
比较D:\SharedFile和D:\Server\SharedFile,同名文件创建时间和修改时间,
客户端比服务器文件新,将客户端文件上传服务器端。
服务器比客户端文件新,将服务器文件下载至客户端。

总之,实现局域网内(一个单元)内部共享文件。办公文件和相关数据的共享。
这样就不能排他操作了,而且仍然要共享,考虑到可能要放在局域网,不可行
  • 打赏
  • 举报
回复
虚拟盘符或者路径用wnet系列函数就行了,WNetAddConnection2、WNetAddConnection3之类的,但是你需要知道远程机器上有操作权限的某个用户的用户名、密码,本质上和带密码的共享没有什么区别。
lyhoo163 2015-08-18
  • 打赏
  • 举报
回复
基本做好,但是还有几个问题。需要考虑: 1、如何删除共享目录中的文件。如果是同步的话,只要一个客户端有一个文件。还会同步上来的。 2、是否需要同步上传文件黑名单。 3、是否需要同步下载文件黑名单。
武稀松 2015-08-17
  • 打赏
  • 举报
回复
你这种要做一个虚拟的文件系统了,是做驱动的范畴
lyhoo163 2015-08-16
  • 打赏
  • 举报
回复

上图进入共享目录界面。


共享目录界面。
lyhoo163 2015-08-16
  • 打赏
  • 举报
回复
你的问题,也是想做的,初打完成。 一、在指定本地磁盘一个目录为共享目录:比如 D:\SharedFile
二、将D:\SharedPath,设置为虚拟盘 V:\
三、在服务器端,指定一个共享目录 D:\Server\SharedFile
四、客户端操作
(1)将D:\SharedFile文件(含子目录)全部上传至服务器 D:\Server\SharedFile
(2)下载共享文件,比较D:\SharedFile和D:\Server\SharedFile,同名文件创建时间和修改时间,实现更新下载。
(3)定时服务器与客户端文件的更新互传。
比较D:\SharedFile和D:\Server\SharedFile,同名文件创建时间和修改时间,
客户端比服务器文件新,将客户端文件上传服务器端。
服务器比客户端文件新,将服务器文件下载至客户端。

总之,实现局域网内(一个单元)内部共享文件。办公文件和相关数据的共享。
jinhx 2015-08-12
  • 打赏
  • 举报
回复
引用 3 楼 linuxpingwangping 的回复:
1, 在服务器端放一个Server程序 2,客户端访问C:/1.txt时, Server程序收到“C:/1.txt”, 读数据库或文件,将C:/1.txt取回。
不是客户端程序要访问服务器文件,而是客户端操作系统要访问服务器文件,而客户端操作系统要用什么程序操作该文件未知,根据扩展名来,这是操作系统要干的事情
  • 打赏
  • 举报
回复
1, 在服务器端放一个Server程序 2,客户端访问C:/1.txt时, Server程序收到“C:/1.txt”, 读数据库或文件,将C:/1.txt取回。
jinhx 2015-08-12
  • 打赏
  • 举报
回复
引用 1 楼 wallace_xie 的回复:
delphi大多数控件都支持支持从流中加载数据,如果文档保存在数据库中,控件直接从BlobStream 类型的字段对象中加载数据就行了,不必用虚拟盘。除非你是用Activex控件,不支持Stream操作。
我说的是远程文件流,因为要考虑独占的问题
wallace_xie 2015-08-12
  • 打赏
  • 举报
回复
delphi大多数控件都支持支持从流中加载数据,如果文档保存在数据库中,控件直接从BlobStream 类型的字段对象中加载数据就行了,不必用虚拟盘。除非你是用Activex控件,不支持Stream操作。
  • 打赏
  • 举报
回复
"客户端操作系统要用什么程序操作该文件未知" 用什么程序来读取远程的文件你都不知道, 服务器端怎么知道用什么“协议”来传回文件。。。。这是一个没法做的东西。

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧