2008-10-12 456 views
3

我正在嘗試使用File.Move將文件從一個UNC位置移動到另一個位置。如果目標的UNC路徑碰巧是本地計算機,則會發生此錯誤(錯誤:拒絕訪問路徑)。示例File.Move(@"\\someServer\path\file.txt", @"\\blah2\somewhere\file.txt")。這假設有一個名爲\\ someServer的網絡共享,我的本地計算機名稱是blah2。將\\ blah2更改爲C:\並且一切都很好。File.Move無法正常工作UNC路徑

回答

1

不應該在您的unc路徑中的服務器名稱以兩個斜線開始?
例如@「\\ someServer \ path \ file.txt」

+0

鑑於我不得不寫三個斜槓兩個出現在我的帖子,我想現在你有同樣的問題,那你確實有正確的路徑。對不起,我不能更有幫助:-) – hamishmcn 2008-10-12 08:24:15

4

也許這是一個錯字,但不應該是@"\\blah2\somewhere\file.txt",即有兩個反斜槓?

0

我似乎無法重現該錯誤。也許它與權限有關?你可以使用UNC地址移動到本地機器上的任何地方,還是全都拋出異常?

1

對於Windows文件共享,寫訪問權限需要在另一個位置(ACL除外)指定權限 - 在共享權限中。如果您正在使用像C $這樣的管理共享,則寫入訪問權限已啓用,但如果您使用的是明確設置的共享,請確保在「共享權限」下啓用「更改」選項。

注意,您可以經常通過檢查下計算機管理安全事件日誌解決權限錯誤 - >事件查看器,有可能是它是如何失敗的更多詳細信息。在管理工具 - >本地安全策略 - >本地策略 - >審覈策略下啓用審覈登錄失敗的功能也可能在事件日誌中提供更多詳細信息。

0

我有同樣的問題,該文件正在被另一個程序(Windows資源管理器)被鎖定,在我來說,我使用解鎖軟件解鎖文件。這發生在我使用UNC路徑訪問文件時,File.Move方法通過本地路徑很好地訪問它。

似乎疏遠,我認爲我沒有得到這樣的行爲手動重命名通過UNC /本地路徑的文件時。