我将使用我的winforms应用程序通过网络复制一个大文件,我需要显示某种进度条.我没有做自己的复制程序,而是认为简单地显示内置文件复制对话框可能会更好.
我还需要一个"复制完成"和"复制失败"通知.
我需要这个在Windows XP,Vista和7上工作.有没有办法打电话来从我的c#代码中使用这个功能?
我的应用程序运行时,我必须将psTool实用程序复制到System32文件夹.
我在64位Windows 7上,每当我尝试将exe复制到system32位文件夹时File.Copy,exe总是被复制到SysWow64.
当我在destFile上放置断点时,路径显示为C:\Windows\System32但文件不会进入(转到sysWow64).我试过了Special Folder SystemX86,但文件再次进入sysWOW64.
string sourceFile = "C:\bin\Debug\somexe.exe"
string destFile = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.System), utilityName);
File.Copy(sourceFile, destFile, true);
Run Code Online (Sandbox Code Playgroud)
我在这里缺少什么建议?
编辑
正如下面的答案中所指出的,存在文件系统重定向.我正在使用Visual Studio的默认设置为64位操作系统上的控制台应用程序开发应用程序.我不确定在编译时必须保留哪些设置/开关,以便应用程序在32位和64位OS上都能正常工作.
基本上,它应该只设置复制文件,System32而不管它是什么位操作系统.
在程序的后面,我必须通过命令行访问psTools实用程序,如果我将它放在SysWOW64中则不可用.如果我进行更改,使用SysWOW64的32位cmd.exe,这将再次是64位平台特定的东西,我不想选择.
任何可以让应用程序在32位和64位上运行而没有问题的解决方案?我是否必须修改代码(如何?)或者我是否必须修改此控制台应用程序项目的某些属性(属性)?
c# ×2
.net ×1
.net-3.5 ×1
32bit-64bit ×1
64-bit ×1
dialog ×1
file-copying ×1
winapi ×1
windows ×1