2009-09-09 131 views
0

我正在編寫一個程序,其中包括需要將特定文件複製到網絡文件夾。由於我在公司網絡上,訪問該文件夾所需的憑證與我的Windows憑證相同。C#將文件複製到具有權限的文件夾

如果我在資源管理器中打開文件夾,提供我的用戶名和密碼,然後運行上傳程序,該程序將正常工作。沒有首先提供該用戶名和密碼,它不起作用。

如何告訴System.IO將DefaultNetworkCredentials提供給Copy方法?還是有另一種方法可以用來完成這件事?

string pathToFile = "myfile.csv"; 
string pathToRemoteFile = "\\server.domain.tld\Documents\Subfolder\myfile.csv" 

System.IO.File.Copy(pathToFile, pathToRemoteFile); // Fails with IOException "can't find network path" 

謝謝!

〜Wogan

+0

我相信有一個更普遍的方式:http://stackoverflow.com/questions/295538/how-to-provide-user-name-and-password-when-connecting - 對一個網絡共享/ 39540451#39540451 – 2016-09-16 21:44:34

回答

2

該錯誤表明它是一個不正確的路徑而不是權限問題。

嘗試這種情況:

string pathToRemoteFile = @"\\server.domain.tld\Documents\Subfolder\myfile.csv" 

[該@是字符串文字引用符號;沒有它的反斜槓是一個特殊的字符]

+0

你也可以用'\\'來逃避所有的'\'字符。但Mitch'es的解決方案是最好的。 – Koekiebox 2009-09-09 10:38:30

+0

不幸的是,這不是它 - 就像我在我原來的問題中所說的那樣,如果我在運行該程序之前瀏覽並登錄到資源管理器中的文件夾路徑,則代碼工作正常。 – Wogan 2009-09-09 11:05:11

+0

糟糕,並且該僞代碼示例未從程序中複製,僅用於演示目的。 – Wogan 2009-09-09 11:05:58

相關問題