6

File.Move を使用して、ある UNC の場所から別の場所にファイルを移動しようとしています。これは、宛先の UNC パスがたまたまローカル マシンである場合に爆発します (エラー: パスへのアクセスが拒否されました)。例File.Move(@"\\someServer\path\file.txt", @"\\blah2\somewhere\file.txt")。これは、どこかに \\someServer という名前のネットワーク共有があり、私のローカル マシン名が blah2 であることを前提としています。\\blah2 を C:\ に変更すると、すべて問題ありません。

4

6 に答える 6

4

タイプミスかもしれませんが@"\\blah2\somewhere\file.txt"、2つのバックスラッシュがあるのではないでしょうか。

于 2008-10-12T08:23:20.963 に答える
1

uncパスのサーバー名は2つのスラッシュで始まるべきではありませんか?
例:@ "\\ someServer \ path \ file.txt"

于 2008-10-12T08:22:30.840 に答える
1

Windows ファイル共有の場合、書き込みアクセスには、(ACL 以外の) もう 1 つの場所 (共有アクセス許可) で指定するアクセス許可が必要です。C$ などの管理共有を使用している場合、書き込みアクセスは既に有効になっていますが、このために明示的に設定されている共有を使用している場合は、[共有アクセス許可] で [変更] オプションが有効になっていることを確認してください。

[コンピューターの管理] -> [イベント ビューアー] の [セキュリティ イベント ログ] を確認することで、多くの場合、アクセス許可エラーをトラブルシューティングできることに注意してください。エラーの原因に関する追加の詳細がある場合があります。[管理ツール] -> [ローカル セキュリティ ポリシー] -> [ローカル ポリシー] -> [監査ポリシー] でログオン失敗の監査を有効にすると、イベント ログに詳細が記録される場合もあります。

于 2008-10-12T12:25:41.583 に答える
0

File.Move ターゲット パスは UNC パスを受け入れません

http://support.microsoft.com/KB/112744

于 2014-05-29T03:27:09.963 に答える
0

バグを再現できないようです。多分それは許可と関係がありますか?UNC アドレスを使用してローカル マシン上の任意の場所に移動できますか、それともすべて例外をスローしますか?

于 2008-10-12T11:58:47.487 に答える
0

私は同じ問題を抱えていて、ファイルは別のプログラム (Windows エクスプローラー) によってロックされていました。私の場合、ロック解除ツールを使用してファイルのロックを解除しました。これは、UNCパスを使用してファイルにアクセスしたときに発生しました.File.Moveメソッドは、ローカルパスを介してファイルにアクセスすると正常に機能します。

UNC/ローカルパスを介してファイルの名前を手動で変更したときに、その動作が得られなかったのは私には奇妙なようです。

于 2012-02-04T05:27:09.857 に答える