1

我有一组 XML 文件,我正在循环遍历并将有错误的文件移动到另一个文件位置。但是,当我使用 system.io.file.move 函数时,它需要我指定文件名而不是移动文件路径。有没有办法可以在保持相同名称的同时将文件从一个位置移动到另一个位置?我目前正在根据文件在数组中的位置创建一个名称,这实际上并不可行。

string ErrorPath = string.Format(@"{1}ErroredXml{0}.xml", errorLength, errorPaths);

//If type equals "add" then call add method else call update
if (Equals(type, typecomp))
{
    //pass object to data access layer to add record
    value.addNewGamePlay();

    if (value.getGamePlayID() == 0)
    {
        //move to error file
        System.IO.File.Move(value.getFile(), ErrorPath);
        errorLength++;
    }
}
4

2 回答 2

8

您可以使用Path.GetFileName以下方法提取原始文件名并使用它构造目标路径Path.Combine

var original = value.getFile();
var destinationPath = Path.Combine(errorPaths, Path.GetFileName(original));
于 2012-09-19T11:12:25.637 回答
-1

移动方法不需要更改文件名。第二个参数不是文件的新名称,而是文件的新路径,例如

第一个参数 (sourceFileName) @"c:\temp\MyTest.txt"

第二个参数 (destFileName) @"c:\temp2\MyTest.txt"

所以文件名是相同的“MyTest.txt”只是位置改变了。

于 2012-09-19T11:16:35.897 回答