复制文件fo映射网络驱动器使用FileInfo.CopyTo

问题描述:

我尝试将文件复制到映射网络驱动器,但我总是收到消息“找不到路径的一部分...”。我尝试了不同的映射网络驱动器,这样我就可以排除证书问题(它既不用不同的凭据,也不符合我正常的用户connexcted驱动器的工作原理)复制文件fo映射网络驱动器使用FileInfo.CopyTo

try 
    { 
    fi.CopyTo(SystemReg.TargetPath + fi.Name); 
    } 
    catch (Exception e) 
    { 
     SystemReg.Log.AppendLine("Copy failed! " + Environment.NewLine + e.Message); 
    } 

SystemReg.TargetPath是从XML文件中读取。如果我使用像D:\temp\这样的本地路径,它可以很好地工作,但例如X:\temp\将X作为映射驱动器失败。

我也尝试在调用我的程序之前在“net use ...”批处理文件中运行我的程序,它也失败。

+0

驱动器名称的作用域为您的机器。该驱动器可能在任何其他机器上具有完全不同的名称。使用机器名称。 '\\ MACHINE \文件夹$' – Marco

+0

我还是觉得很奇怪。 *您是否尝试从另一台未映射的计算机*问您在一台计算机上映射的驱动器?那当然是行不通的。但我假设你只在一台计算机上,驱动器被映射,你有权限。您可以手动复制(使用资源管理器)。阅读'FileInfo.CopyTo()'文档(https://msdn.microsoft.com/en-us/library/f0e105zt%28v=vs.110%29.aspx),我读到'UnauthorizedAccessException'如果“该文件正在被移动到另一个驱动器。”事实真的如此吗?为什么?如果你用一个机器名替代,为什么它会起作用? –

你应该使用计算机地址而不是驱动器名称。

例如,如果您的计算机的地址是192.168.0.200其不断共享文件夹temp\那么你的完整路径是\\192.168.0.200\temp\

+0

谢谢,它的工作原理! :) – Azrael