File.Move =路径?

时间:2017-10-29 08:06:47

标签: c#

早上好,我应该解决这个问题。 file.move在我的电脑上找到一个本地路径。 如果我不得不将它移动到另一台电脑,这将无法正常工作,因为路径不同。 有一种输入唯一路径的方法: 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");

}

2 个答案:

答案 0 :(得分:0)

不确定您的错误消息是什么,但我注意到了一些错误。

第一个错误是这一行:

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目录,而不是稍后移动到那里,但我再次猜测有这个原因。

如果这不起作用,请提供错误消息并准确告诉我们您要做的事情。

答案 1 :(得分:0)

此脚本仅适用于我的电脑本地。 如果你想在另一台电脑上导入这个功能是行不通的,因为可能不会调用其他电脑"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#,你会发现它们是第一批武器。