在c#中移动文件而不重命名

时间:2012-09-19 11:10:04

标签: c# asp.net visual-studio-2010

我有一个循环的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++;
    }
}

2 个答案:

答案 0 :(得分:7)

您可以使用Path.GetFileName提取原始文件名,并使用Path.Combine构建目标路径:

var original = value.getFile();
var destinationPath = Path.Combine(errorPaths, Path.GetFileName(original));

答案 1 :(得分:0)

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

第一个参数(sourceFileName) @ “C:\ TEMP \ MyTest.txt”

第二个参数(destFileName) @ “C:\ TEMP2 \ MyTest.txt”

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