我正在尝试将驱动程序文件从我的应用程序文件夹复制到Windows 7中的驱动程序文件夹。但是当我运行此程序文件已经存在异常时,如果我手动检查驱动程序文件夹,该文件根本不存在。
Program.sDriverPath = Path.Combine(Program.sStartUpPath, @"windows7\amd64\MyDriver.sys");
string sPath = sDriverPath;
string sDestPath = Path.Combine(Environment.ExpandEnvironmentVariables(@"%windir%\system32"), @"drivers\MyDriver.sys");
MessageBox.Show("Source " + sDriverPath);
File.Copy(sDriverPath, sDestPath);
答案 0 :(得分:1)
如果要覆盖现有文件,则需要使用the overload which has a boolean parameter:
public static void Copy(
string sourceFileName,
string destFileName,
bool overwrite)
并为true
指定overwrite
。
现在奇怪的是,你说文件根本不存在于目的地 - 我认为必须这样做,而你却找不到合适的位置。
尝试在致电File.Copy()
之前立即在代码中设置断点并检查sDestPath
参数。
我怀疑发生的事情是File System Redirector
正在默默地将您的应用程序重定向到另一个文件夹。
请尝试检查文件夹%windir%\SysWOW64
。
最后,请注意,进程的用户必须以管理员身份运行才能将文件写入该位置。
答案 1 :(得分:0)
谢谢@Matthew Watson我找到了解决方案。 FSRedirector将system32文件夹重定向到SysWow64文件夹。转到syswow64文件夹然后转到驱动器文件夹,你会在那里找到你的文件。