【问题标题】:C# move path includes invalid charactersC# 移动路径包含无效字符
【发布时间】:2018-08-30 10:25:21
【问题描述】:

我一直在尝试在 C# 中为 2 个不同的路径做一个重命名程序,但我不断收到错误“路径包含无效字符”我不知道如何修复它,我尝试添加 @ 并删除 \ 并保留只有一个 。但是还是没有想好怎么解决。希望得到任何帮助。

这就是给我一个错误的原因:

if (French.Checked)
{
    directoryfile = @"C:\Users\" + curruser + @"\Appdata\Local\fo4renamer\directory.txt";
    label1.Text = directoryfile;
    readpath = File.ReadAllText(directoryfile);
    string shouldwork = readpath + "data";
    string french = shouldwork + "\\french";
    string german = shouldwork + "\\german";
    string tmp = shouldwork + "tmp.txt";
    label1.Text = french;
    string path2 = @"C:\Users\duchacekda\Desktop\e\Renamer\Renamer\bin\Debug\tmp.txt";
    string filename = @"C:\Users\duchacekda\Desktop\e\Renamer\Renamer\bin\Debug\french.txt";
    File.Move(french, german);
}

这是整个代码: https://pastebin.com/0i7fzh24

编辑:这是 curruser 的字符串 string curruser = System.Environment.UserName;

这一行给出了异常

 File.Move(french, german);

【问题讨论】:

  • curruser的值为...?
  • 调试器对发生错误的行说了什么? @InBetween 以 curruser 的价值击败了我;)
  • directory.txt 文件的内容是什么,因为它直接影响 File.Move 命令将执行的内容。另外,哪一行导致了异常?
  • Console.WriteLine() 您的文件名或使用调试器并在运行时观察变量值。
  • 在上面的代码块中准确告诉我们您要做什么。

标签: c# path rename move


【解决方案1】:

File.ReadAllText Method (String):打开一个文本文件,读取文件的所有行,然后关闭文件。

所以在你的场景中:

string french = (Content of directory.txt) + "data" + "\\french";

取决于 directory.txt 的内容

a) 如果 content = directory path(c:\foo) 没有问题

b) 如果 content = "dummy text *** dummy text" 那么它会抛出异常

请检查文件内容

【讨论】:

  • 哦,不好意思,忘了加上文件有正常路径(即C:\folder),所以不是那个原因
【解决方案2】:

发现错误,我用的是WriteLine而不是Write,所以它在行尾添加了enter,导致路径不正确,感谢帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-20
    • 2014-09-25
    • 1970-01-01
    • 2017-12-04
    • 1970-01-01
    • 2012-04-02
    • 1970-01-01
    • 2017-02-05
    相关资源
    最近更新 更多