CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  VB.NET

超强的问题!!!给思路就有分啊!!!

楼主simon8181()2004-12-01 14:54:09 在 .NET技术 / VB.NET 提问

我想做一个程序,功能有对文件操作的记录,例如:复制、粘贴、剪切这几个操作。如果对文件监视的话,只能记录文件的变化,是什么操作就一点也不知道了,达不到我的要求。请大家给点办法啊!!!! 问题点数:50、回复次数:25Top

1 楼yangrenhuai(yang)回复于 2004-12-01 15:06:54 得分 5

文件监视可以使用FileSystemWatcher组件  
  文件复制、粘贴等可以使用File或FileInfo   类Top

2 楼simon8181()回复于 2004-12-01 15:12:14 得分 0

不好意思,可能我的问题没有说清楚,楼上的我都知道。  
  我的问题举一个简单的例子:有一个文件a.txt,他原来放在c盘下,现在我把它剪切到d盘,我想实现的功能是记录这个剪切的操作,而不是记录了文件a.txt在c盘被删除了,d盘新建了一个a.txt文件。主要是想记录操作。Top

3 楼simon8181()回复于 2004-12-01 15:19:59 得分 0

upTop

4 楼qiri07(俺家金毛de地位比俺高)回复于 2004-12-01 15:31:03 得分 0

写个服务,驻留在后台,监视硬盘操作信息Top

5 楼simon8181()回复于 2004-12-01 15:34:11 得分 0

怎么监视,才能得到操作是剪切、复制,还是粘贴啊?Top

6 楼wuyazhe(wyz&xyl)回复于 2004-12-01 15:44:38 得分 5

自定义格式,保存操作日志。做类似栈的东西。操作就压栈,undo就出栈。栈空就不允许undo。Top

7 楼simon8181()回复于 2004-12-01 16:00:38 得分 0

楼上的能说清楚点吗?“自定义格式”举个例子可以吗?Top

8 楼wuyazhe(wyz&xyl)回复于 2004-12-01 16:05:26 得分 5

不会。  
  之前有个网友问的和你的差不多。给人出个主意,不过不好实现。  
  我的方法不说了。参考这个  
  http://www.javagarden.org/old/myarticle/20040225005.htmTop

9 楼loveerror(马烁焱)回复于 2004-12-01 16:53:09 得分 0

高难度.Top

10 楼bruce_figo(管理员 www.eahan.com)回复于 2004-12-01 16:55:46 得分 5

没做过,不过windows里复制(删除、重命名。。)一个文件(文件夹)后,在explore中click鼠标左键的弹出菜单中会存在“撤销复制(删除、重命名。。)”的选项,也就是windows记录了用户的硬盘操作,我想既然windows可以做到这一点,那么win32的API函数中或许会有搂主需要的东西。Top

11 楼CodeTalk(bigrobin@126.com)回复于 2004-12-01 16:56:39 得分 5

也许要截获系统消息,用钩子技术或许可以监视剪贴板操作。过去用vc实现,但是在.net下面我不知道。Top

12 楼simon8181()回复于 2004-12-02 07:45:10 得分 0

我上网看了一些关于dos命令的资料,和ntvdm.exe有关,不知道怎么监视ntvdm.exe?Top

13 楼hebookboy(民工宝贝)回复于 2004-12-02 07:52:29 得分 0

关注学习中Top

14 楼hdt(倦怠)回复于 2004-12-02 07:56:33 得分 5

windows   shell编程使用vb6或vc很容易实现,托管程序实现  
  不太清楚Top

15 楼hdt(倦怠)回复于 2004-12-02 07:58:12 得分 5

ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.2052/shellcc/platform/shell/programmersguide/shell_int/shell_int_extending/extensionhandlers/drophandlers.htm  
  给你个例子关于拖曳的Top

16 楼qzj(SoldierQ)回复于 2004-12-02 10:47:48 得分 5

实现监视文件系统操作的话,估计实现相对困难;不过我觉得可以通过每隔一段时间对磁盘进行快照,然后比对相邻两次磁盘快照来得出相应的磁盘操作。磁盘快照也就是指遍历磁盘上的所有文件,记录文件名,时间,路径,最好还要生成MD5校验码来判断文件是否修改。这种方法对系统的资源消耗比较大,不过实现起来相对简单,一些流行的反安装程序大多都是这么做的,记录一个程序安装前后的磁盘文件和系统注册表的变化来达到完全反安装一个程序的目的。Top

17 楼simon8181()回复于 2004-12-04 16:40:25 得分 0

upTop

18 楼duxinrun(晴天坊)回复于 2004-12-04 16:57:58 得分 5

监视剪贴板在VB.net/C#中通过Override窗体的WinProc过程并利用API注册/取消剪贴板监视来获得对剪贴板的监视,用不了30行代码。这样就能监视剪贴板的情况了。  
  然后再来监视一下文件系统就OK了。  
  比如你发现剪贴板里面存储了对文件的因用,说明现在用了复制/剪切操作,然后你获得所复制/剪切的文件是什么,一旦发现剪贴板空了,说明文件操作已经完成,那么就去查看所保存的文件信息是否还在原位置存在。  
  这只是一个思路,当然还会有很多情况需要判断和处理。  
  仅提供思路,供大家探讨。Top

19 楼YidingHe(机枪兵)回复于 2004-12-04 19:53:05 得分 0

仅仅靠观察剪贴板,不好区分是复制还是粘贴,而且得不到数据的来源。Top

20 楼Fashionxu()回复于 2004-12-04 23:31:19 得分 5

监视文件变化与剪贴板相结合。  
   
  比如发现有文件被删除了,那么立即查看剪贴板上是否有文件,然后再等候,看是否有新的文件生成。若两个条件满足,就作为剪切记录下来。同理,其余可做。  
   
  思路:监视文件系统,查看剪贴板,与下一次文件系统变化相结合,得出结论。  
   
  Top

21 楼simon8181()回复于 2004-12-06 13:23:42 得分 0

谢谢以上各位的思路。Top

22 楼athossmth(athos)回复于 2004-12-10 21:39:26 得分 0

学习Top

23 楼lgg06(随风)回复于 2004-12-11 00:38:02 得分 0

markTop

24 楼Paradise_heida(学海无涯,回头是岸!)回复于 2004-12-11 16:08:25 得分 0

写个存储过程,用触发器。Top

25 楼mycoldboy(寒潭清)回复于 2004-12-11 17:17:07 得分 0

在网上下载控件,搜吧,多.Top

相关问题

  • 高分求思路!!
  • 高分求思路!!
  • 高分求教一思路
  • 300分征求思路。
  • 高分求思路(300)
  • 高分求思路(300)
  • 高分求思路(300)
  • 高分求思路?初学!
  • 高分求问题思路
  • 100分~~,求一个思路~~

关键词

  • 文件
  • 监视
  • 剪切
  • 系统
  • 安装
  • shell
  • 剪贴板
  • 操作
  • 磁盘
  • 复制

得分解答快速导航

  • 帖主:simon8181
  • yangrenhuai
  • wuyazhe
  • wuyazhe
  • bruce_figo
  • CodeTalk
  • hdt
  • hdt
  • qzj
  • duxinrun
  • Fashionxu

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo