85273


  * 問題  
現在、2台のPCがLANネットワークで接続されており、片方のPCからもう一方のPC内の特定のファイルを操作(移動)したいと考えています。  
C#のプログラムを書き、実行すると"Access to the path is denied."のErrorになってしまいます。  
[![画像の説明をここに入力](https://i.stack.imgur.com/a7Vs8.jpg)](https://i.stack.imgur.com/a7Vs8.jpg)

プログラムは以下です。

[code]

    string target     = @"\\PCName\c\temp\target";
    string originPath = @"\\PCName\c\temp\origin";
    var items = Directory.GetFiles(originPath);
    
    foreach (var itemPath in itemPaths)
    {
      string file = System.IO.Path.GetFileName(itemPath);
      File.Move(item, target + "\\" + file);
    }
    
[/code]

移動元と移動先のフォルダをUNCで指定しています。

プログラムを実行するPCと対象のPCのネットワークは設定されており、リモートデスクトップなど別の方法ではアクセスできます。  
対象のフォルダはRootを含め`Everyone`で共有しています。  
[![画像の説明をここに入力](https://i.stack.imgur.com/Vzqva.png)](https://i.stack.imgur.com/Vzqva.png)  
プログラムを管理者権限でも実行しましたが結果は変わりません。

初歩的な質問で恐縮ですが、ご教授頂けると幸いです。

  * 環境  
OS: Windows7 Pro


CC BY-SA 4.0
2021-12-22T06:14:35.700
85272
2021-12-22T06:27:39.490
50562
question
c# windows network
C# LAN ネットワーク内にある別PCのファイル操作


実際に試したわけではありませんが、英語版での [Get files using UNC
Path](https://stackoverflow.com/q/35510378) という質問についた
[回答の一つ](https://stackoverflow.com/a/56286055) を参考に投稿します。

UNC パスの指定を以下のいずれかを試してみてください。

  * `@"\share\directory\folder"` -> `@` を付ける場合、先頭の `\` は一つだけ
  * `"\\share\directory\folder"` -> `@` を付けない場合、先頭の `\` は二つ


CC BY-SA 4.0
2021-12-22T06:27:39.490
85273
2021-12-22T06:27:39.490
3060
85272
answer