请问C#里面如何实现剪切一个文件到另一个目录时,能捕获到原来的路径是那个?

dafanshu 2011-02-20 12:03:02
比如c:\a.txt剪切到d:\a.txt,就想监控获取到c:\a.txt这个路径值。FileSystemWatcher可以监控文件,但只能监控文件发生后的时间,如Changed事件,获取的FullPath是后者的路径,即d:\a.txt。
...全文
562 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
dafanshu 2011-02-26
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 xingyuebuyu 的回复:]
http://www.codeproject.com/KB/clipboard/ClipSpyPlus.aspx

http://www.radsoftware.com.au/articles/clipboardmonitor.aspx

http://www.codeproject.com/KB/DLL/WindowsHookLib.aspx

Clipboard Monitor
[/Quote]

Many thanks.It's very useful.
lanhai96 2011-02-20
  • 打赏
  • 举报
回复
应该要走剪切板,查看剪切板列表看行不?
子夜__ 2011-02-20
  • 打赏
  • 举报
回复
// <summary>
/// 复制或剪切文件至剪贴板
/// </summary>
/// <param name="files">文件路径的数组</param>
/// <param name="cut">是否剪切true为剪切,false为复制</param>
void CopyToClipboard(string[] files,bool cut)
{
if (files == null) return;

IDataObject data = new DataObject(DataFormats.FileDrop, files);
MemoryStream memo = new MemoryStream(4);
byte[] bytes = new byte[] { (byte)(cut ? 2 : 5), 0, 0, 0 };
memo.Write(bytes, 0, bytes.Length);
data.SetData("Preferred DropEffect", memo);
Clipboard.SetDataObject(data);
}


参考
dafanshu 2011-02-20
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 xingyuebuyu 的回复:]
foreach (string s in Clipboard.GetFileDropList())
{
Console.WriteLine(s);
}


GetFileDropList可以得到复制的文件路径
[/Quote]

那我要什么方法来捕获粘贴事件呢,因为,如果还用FileSystemWatcher的Changed事件来触发处理,那此时剪切板的内容已是空了。
xingyuebuyu 2011-02-20
  • 打赏
  • 举报
回复
foreach (string s in Clipboard.GetFileDropList())
{
Console.WriteLine(s);
}


GetFileDropList可以得到复制的文件路径

111,097

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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