文件已存在异常文件.复制
本文关键字:文件 复制 异常 存在 | 更新日期: 2023-09-27 18:37:09
我正在尝试将驱动程序文件从我的应用程序文件夹复制到 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);
如果要
覆盖现有文件,则需要使用具有布尔参数的重载:
public static void Copy(
string sourceFileName,
string destFileName,
bool overwrite)
并指定overwrite
的true
。
现在很奇怪,你说文件根本不存在于目的地 - 我认为它必须存在,而且你没有在正确的地方寻找。
尝试在调用 File.Copy()
之前立即在代码中设置断点并检查 sDestPath
参数。
我怀疑正在发生的事情是File System Redirector
正在静默地将您的应用程序重定向到不同的文件夹。
请尝试改为检查文件夹%windir%'SysWOW64
。
最后,请注意,进程的用户必须以管理员身份运行才能将文件写入该位置。
感谢沃森@Matthew我找到了解决方案。FSRedirector 正在将 system32 文件夹重定向到 SysWow64 文件夹。转到syswow64文件夹,然后转到驱动器文件夹,您将在那里找到您的文件。