繁体   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