【发布时间】:2013-10-05 19:44:09
【问题描述】:
我正在尝试创建一个复制文件或文件夹并测量复制时间的函数
public static TimeSpan CopyFileExplorer(string filePath, string fileDestination)
{
string command = @"/select, " + filePath;
System.Diagnostics.Process.Start("explorer.exe", command);
SendKeys.Send("^(C)");
command = @"/select, " + fileDestination;
System.Diagnostics.Process.Start("explorer.exe",command);
DateTime startCopy = DateTime.Now;
SendKeys.Send("^(V)");
//need to be catched when explorer finishes the copy
DateTime endCopy = DateTime.Now;
return endCopy - startCopy;
}
我试图找到资源管理器的“复制窗口”何时消失,但我没有成功...
【问题讨论】:
-
有什么理由不使用
File.Copy(sourceFileName, destFileName)? -
我需要使用 Windows 资源管理器...并像用户一样执行
-
为什么?仍然不明白,永远不会有理由使用这样的东西,并且从表单应用程序中发送关键命令并打开资源管理器窗口是非常糟糕的做法......
-
@Ela 一个有效的论点是通过资源管理器复制允许复制到不是简单目录的位置(ZIP 文件、FTP 服务器等)。这仍然不需要向其他进程发送密钥,但这将是不使用
File.Copy的原因。 (我认为IFileOperation是正确的选择,但我并不完全确定。) -
我知道这是一种糟糕的方式...而且人们会以这种方式复制文件...我的目标是像使用 Windows 的普通用户一样执行文件的复制浏览器并测量所花费的时间
标签: c#