2012-06-20 56 views
0

我有一個文件夾中的網絡上的目錄,我想從我的計算機移動到網絡上的服務器。跨移動使用C#

我試過Directory.Move(A,Server)而是因爲他們沒有相同的根這是行不通的。由於該文件夾是隻讀

File.Copy(A,Server)將無法​​正常工作,並且不能更改權限。

在此先感謝。

編輯inculding代碼

string copyFrom = @"folder"; 
string copyTo = @"\\server\Libraries\Documents"; 
string destinationPath = Path.Combine(copyTo, Path.GetFileName(copyFrom)); 
File.Copy(copyFrom, destinationPath); 

這就是我目前使用的代碼。

EDIT 2

我的電腦和服務器都在不同的領域。

+0

ü意味着服務器的路徑是隻讀的。如果是的話,你怎麼能想到使用File.Copy或Directory.Move。 U必須使文件夾可寫 – Tilak

+0

否我想移動/複製的文件夾是隻讀的。否則,'File.Copy'將起作用 – ELSheepO

+3

爲什麼不使用[XCOPY](http://ss64.com/nt/xcopy.html)? – Tigran

回答

1

由於@Tigran建議,您可以(如果你喜歡或ROBOCOPY)使用CMD與XCOPY。

嘗試使用這樣的:

ProcessStartInfo Info = new ProcessStartInfo(); 
Info.Arguments = "/C xcopy C:\A \\server\A /I /E /Y"; 
Info.WindowStyle = ProcessWindowStyle.Hidden; 
Info.CreateNoWindow = true; 
Info.FileName = "cmd.exe"; 
Process.Start(Info); 
+0

Anychance你有一個簡單的方法登錄到服務器? – ELSheepO

+0

@ELSheepO我不明白你的意思? –

+0

'登錄失敗:未知用戶名或密碼錯誤.'我運行代碼時遇到此異常。 – ELSheepO

0

請看看在下面的鏈接SO,它提供了清晰和接受的解決方案,

How to provide user name and password when connecting to a network share

+0

這讓我完全失去了信心。看着盧克Quinane [答案](http://stackoverflow.com/questions/295538/how-to-provide-user-name-and-password-when-connecting-to-a-network-share/1197430#1197430)它看起來像我必須創建另一個類? – ELSheepO

+0

另一個有用的SO頁面:http://stackoverflow.com/questions/5716117/replace-current-windows-user-running-the-exe-with-another-user我總是使用這個Impersonator類來移動/複製其他東西具有不同憑據的計算機(Windows用戶+密碼)。 – kol

+0

是的..我得創建一個新的。 –