2014-04-22 93 views
1

我试图将文件复制到映射的网络位置。 如果我尝试手动执行,一切正常。将文件复制到另一台计算机上的共享文件夹

通过运行下面的代码我没有得到任何异常,但在需要的位置,我没有得到的代码。

 string _sharedLocation = @"C:\Users\pddd\AppData\Roaming\Microsoft\Windows\Network Shortcuts\system-tests"; 

    if (Directory.Exists(_sharedLocation) && File.Exists(@"c:\\Automation\\Tests\\Test1\\events.json")) 
    { 
     File.Copy(@"c:\\Automation\\Tests\\Test1\\events.json", Path.Combine(_sharedLocation, "events11.json"), true); 
    } 

与问题的任何建议。

+0

你确定你不只是捕获异常其他地方?目标文件夹是否需要验证? – Codor

+0

看看[复制网络共享驱动器上的文件](http://stackoverflow.com/questions/1432213/copy-file-on-a-network-shared-drive)可能会给你一个线索 –

+0

看看在 http://stackoverflow.com/questions/15801748/copying-local-file-to-network-shared-drive-issues 或 http://stackoverflow.com/questions/1432213/copy-file -on-a-network-shared-drive –

回答

1

_SharedLocation变量,它是在位置:"...\Windows\Network Shortcuts\..."

我我只是在这里猜测,但你是否想提到一个快捷方式到网络文件夹,而不是一个网络文件夹?

这不会有任何效果:

File.Copy(myOriginalFile, "C:\...\MyShortcutToANetworkFolder\myFile.txt"); 

为什么不呢?因为快捷方式基本上是一个文件,不是文件夹(它比这更复杂,但我只会简单说明参数的缘故)。您不能将文件(或任何其他文件)放入快捷方式中。你可以用快捷方式做的唯一事情就是打开它。

您需要实际的网络文件夹路径。

这将工作:

File.Copy(myOriginalFile, "\\myServer\myFolder1\myFolder2\myFile.txt"); 
0

看来,目标路径_sharedLocation也指本地路径,而不是一个远程路径。

0

我猜你sharedLocation路径无效。

如果你写@“C:\”会是指在其上运行代码 您的本地驱动器,所以请予以更正

+0

File.Copy应该工作,无论该路径指向本地还是远程位置。我认为问题来自于给定的文件路径是*文件夹快捷键*,而不是实际的*文件夹*。 – Flater

0

问题:您的共享路径是指C:驱动同一台机器。可能您指的是映射网络位置的快捷方式。

string _sharedLocation = @"C:\Users\pddd\AppData\Roaming\Microsoft\Windows\Network Shortcuts\system-tests"; 

它应该是:

string _sharedLocation = @"\\ComputerNetworkIdentity\SharedFolder\pddd\AppData\Roaming\Microsoft\Windows\Network Shortcuts\system-tests"; 

共享计算机可使用\\ComputerName定位。 您必须对shared folder权限。

简单的方法找到一个共享文件夹

  1. 打开Run对话框。
  2. 键入带有前面反斜杠的计算机名称例如\\ComputerNetworIdentity
  3. 找到网络计算机共享的文件夹。
相关问题