【问题标题】:Not supported exception when using File.Move [duplicate]使用 File.Move 时不支持异常 [重复]
【发布时间】:2017-04-13 23:09:40
【问题描述】:

我正在尝试“移动”一个文件并使用File.Move 重命名它。在我需要在特定文件夹中添加存储文件之前,它就起作用了。由于添加了完整路径,我可以创建文件,我可以给它们写信,但是一旦我尝试使用File.Move,它就会给我“NotSupportedException” 我拥有的一些代码的示例是:

private static void myMethod(String file)
    {
        File.Delete(file);
        using (sout = new StreamWriter(pathStart + "temp.txt"))
        {
            foreach(Deck deck in deckList)
            {
                if (deck != null)
                {
                    sout.WriteLine(myString);
                    sout.WriteLine(otherString);
                    sout.Flush();
                }
            }
        }
        File.Move(pathStart + "temp.txt", pathStart + file);
        File.Delete(pathStart + "temp.txt");
    }

任何帮助将不胜感激。

【问题讨论】:

  • pathStart 的值是多少?您应该使用Path.Combine(pathStart, "temp.txt"). For reference, the exception will be thrown when sourceFileName 或destFileName 的格式无效。`(请参阅documentation
  • pathStart 是我的文件系统的复制和粘贴路径。
  • 如果您在代码中设置断点,例如在这一行 File.Move(pathStart + "temp.txt", pathStart + file); 请更新您的代码,并在您使用 QuickWatch 突出显示它时向我们展示这是什么pathStart + "temp.txt", pathStart + file

标签: c# notsupportedexception


【解决方案1】:

我的猜测是,由于您首先删除了文件,因此您使用完整的文件路径输入了该方法。仅当它包含完整的文件路径时才有意义。 (你的“文件”参数)

在 Move 调用中,您尝试将此文件添加到文件路径中,结果出现:错误。

我试过了,只输入一个文件名就可以正常工作。当我输入完整的文件路径时,我确实得到了您的错误。

【讨论】:

  • 使用Path.Combine 方法,一切都按照另一个问题中的建议进行
猜你喜欢
  • 2019-03-26
  • 1970-01-01
  • 1970-01-01
  • 2018-06-24
  • 1970-01-01
  • 1970-01-01
  • 2020-04-01
  • 2014-11-18
  • 2015-06-21
相关资源
最近更新 更多