文件已存在异常文件.复制

本文关键字:文件 复制 异常 存在 | 更新日期: 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)

并指定overwritetrue

现在很奇怪,你说文件根本不存在于目的地 - 我认为它必须存在,而且你没有在正确的地方寻找。

尝试在调用 File.Copy() 之前立即在代码中设置断点并检查 sDestPath 参数。

我怀疑正在发生的事情是File System Redirector正在静默地将您的应用程序重定向到不同的文件夹。

请尝试改为检查文件夹%windir%'SysWOW64

最后,请注意,进程的用户必须以管理员身份运行才能将文件写入该位置。

感谢沃森@Matthew我找到了解决方案。FSRedirector 正在将 system32 文件夹重定向到 SysWow64 文件夹。转到syswow64文件夹,然后转到驱动器文件夹,您将在那里找到您的文件。