首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >File.Move =路径?

File.Move =路径?
EN

Stack Overflow用户
提问于 2017-10-29 16:06:47
回答 2查看 83关注 0票数 0

早上好,我要解决这个问题。file.move在我的pc上找到本地路径。如果我必须将它移动到另一台pc上,这将不起作用,因为路径不同。有一种输入唯一路径的方法: File.move ("C:\ Desktop \ myfile","C:\ Desktop \ myfolder \ myfile")谢谢帮助

代码语言:javascript
复制
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");

}
EN

回答 2

Stack Overflow用户

发布于 2017-10-29 16:36:58

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

第一个错误是这一行:

代码语言:javascript
复制
Directory.CreateDirectory(@"C:\\Users\\orest\\Desktop\\zazza");

如果字符串以@开头,则表示该字符串不能转义字符,因此应将其更改为以下值之一:

代码语言:javascript
复制
Directory.CreateDirectory("C:\\Users\\orest\\Desktop\\zazza");

代码语言:javascript
复制
Directory.CreateDirectory(@"C:\Users\orest\Desktop\zazza");

然后你有一个不必要的睡眠,但我想你知道这一点..

代码语言:javascript
复制
            System.Threading.Thread.Sleep(3000);

然后这一行在不正确的地方有一些空格,将其更改为:

代码语言:javascript
复制
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,因此您需要正确处理此问题,如果您不知道这是什么,我建议您将示例更改为以下内容:

代码语言:javascript
复制
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目录中,而不是稍后移动到那里,但我再次猜测这是有原因的。

如果这不起作用,请提供一条错误消息,并告诉我们您正在尝试执行的操作。

票数 0
EN

Stack Overflow用户

发布于 2017-10-29 17:27:52

此脚本只能在我的PC上本地运行。如果您想要在另一台pc上导入此功能将不起作用,因为另一台pc可能不会被称为"C: \\ Users \\ orest \\ Desktop \\" etc ..

基本上,如果另一台pc被称为"C: \\ Users \\ mypc \\ Desktop \\" etc..ecc.,这将不起作用。

它将提供类型的唯一路径:

代码语言:javascript
复制
File.Move ("C: \\ Desktop \\ 10 in 1 Arcade Collection EUR.rar", "C: \\ Desktop \\ zazza \\ 10 in 1 Arcade Collection EUR.rar");

我希望已经正确地向你解释了,请原谅我糟糕的c #,你会注意到它们是第一个武器。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46998071

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档