C#:控制文件传输*

时间:2011-05-06 20:18:55

标签: c# pinvoke windows-explorer file-transfer

我希望有一个在后台运行的程序,监听任何文件传输,然后取消资源管理器的文件传输机制,并启动它自己。

我该怎么做?是否有一些我可以消费的dll?

为什么?

  • 沿途过滤某些类型的文件。 (自动或提示。)
  • “no to all”重复转移选项。
  • 记录日志。
  • 每次我想传输文件时都不必启动程序。
  • 进一步了解幕后发生的事情。
  • 不依赖第三方程序。
  • 我将来会想到的任何其他功能。

* 通过文件传输,我的意思是通过拖放来移动/复制文件/文件夹,但我只关心从磁盘到磁盘的文件传输,而不是从互联网传输。

2 个答案:

答案 0 :(得分:5)

定义“文件传输”。

你想嗅探ftp,http请求吗?资源管理器也复制?仅限本地或在网络上?

我认为这必然会变得脆弱。你最好的选择是,如果探险家让你通过shell extension挂钩文件复制操作。我不确定是否可以做到。

请参阅The Complete Idiot's Guide to Writing Shell Extensions作为起点。

另见http://msdn.microsoft.com/en-us/library/cc144063(v=vs.85).aspx

答案 1 :(得分:3)

在我开始之前:这将会很糟糕,但不过:

对于Vista / 7:

你需要挂钩(Hooking

CoCreateInstanceIFileOperation,然后从那里更改所需内容。

然而,这不适用于XP,并且可能非常脆弱,可以在某些PC上运行而不在其他PC上运行,因为从API的角度来看,有数百种方法可以在Windows上执行相同的操作。