簡體   English   中英

File.Move =路徑?

[英]File.Move = path?

早上好,我應該解決這個問題。 file.move在我的電腦上找到本地路徑。 如果必須將其移動到另一台PC,則將無法正常工作,因為路徑不同。 有一種輸入唯一路徑的方法:File.move(“ C:\\ Desktop \\ myfile”,“ C:\\ Desktop \\ myfolder \\ myfile”)感謝您的幫助

if (comboBox1.SelectedIndex == 0)
{
    label2.Text = "Download in corso";
    WebClient client = new WebClient();
    string desktop = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);
    client.DownloadProgressChanged += new DownloadProgressChangedEventHandler(client_DownloadProgressChanged);
    client.DownloadFileCompleted += new AsyncCompletedEventHandler(client_DownloadFileCompleted);
    client.DownloadFileAsync(new Uri("http://www.homebrewsrv.altervista.org/OresteTool/trucchi/10%20in%201%20Arcade%20Collection%20EUR.rar"), desktop + "/ " + "10 in 1 Arcade Collection EUR.rar");
    System.Threading.Thread.Sleep(2000);
    Directory.CreateDirectory(@"C:\\Users\\orest\\Desktop\\zazza");
    System.Threading.Thread.Sleep(3000);
    File.Move("C: \\Users\\orest\\Desktop\\ 10 in 1 Arcade Collection EUR.rar", "C: \\Users\\orest\\Desktop\\zazza\\10 in 1 Arcade Collection EUR.rar");

}

不知道您的錯誤消息是什么,但我確實注意到一些錯誤。

第一個錯誤是此行:

Directory.CreateDirectory(@"C:\\Users\\orest\\Desktop\\zazza");

如果以@開頭的字符串告訴您不要轉義字符,則應將其更改為以下之一:

Directory.CreateDirectory("C:\\Users\\orest\\Desktop\\zazza");

要么

Directory.CreateDirectory(@"C:\Users\orest\Desktop\zazza");

那你有不必要的睡眠,但我想你知道。

            System.Threading.Thread.Sleep(3000);

然后是此行,在不正確的地方有一些空格,請將其更改為:

File.Move("C:\\Users\\orest\\Desktop\\10 in 1 Arcade Collection EUR.rar", "C:\\Users\\orest\\Desktop\\zazza\\10 in 1 Arcade Collection EUR.rar");

然后它應該可以工作,或者您可以跳過轉義(\\)並只使用一個,但是在開始時需要@符號。

但是...。您正在使用DownloadFileAsync,因此您需要正確處理此問題,如果您不知道那是什么,我建議您將示例更改為以下內容:

if (comboBox1.SelectedIndex == 0)
{
    label2.Text = "Download in corso";
    WebClient client = new WebClient();
    string desktop = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);
    client.DownloadFile("http://www.homebrewsrv.altervista.org/OresteTool/trucchi/10%20in%201%20Arcade%20Collection%20EUR.rar", desktop + "/ " + "10 in 1 Arcade Collection EUR.rar");
    Directory.CreateDirectory("C:\\Users\\orest\\Desktop\\zazza");
    File.Move("C:\\Users\\orest\\Desktop\\10 in 1 Arcade Collection EUR.rar", "C:\\Users\\orest\\Desktop\\zazza\\10 in 1 Arcade Collection EUR.rar");
}

這不是異步的,但您應該仔細閱讀。 您也可以直接下載到您的zazza目錄,而不是稍后再移動到該目錄,但是我想這是有一定原因的。

如果此方法不起作用,請提供錯誤消息,並告訴我們您要執行的操作。

該腳本僅在我的PC上本地工作。 如果您想在另一台PC上導入此功能將無法正常工作,因為另一台PC可能不會被稱為"C: \\\\ Users \\\\ orest \\\\ Desktop \\\\" etc ..

基本上,如果另一台PC稱為"C: \\\\ Users \\\\ mypc \\\\ Desktop \\\\" etc..ecc. 這行不通。

它會提供以下類型的唯一路徑:

File.Move ("C: \\ Desktop \\ 10 in 1 Arcade Collection EUR.rar", "C: \\ Desktop \\ zazza \\ 10 in 1 Arcade Collection EUR.rar");

我希望正確地向您解釋,原諒我的C#錯誤,您會注意到它們是第一把武器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM