Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在c#中移动文件而不重命名它_C#_Asp.net_Visual Studio 2010 - Fatal编程技术网

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

在c#中移动文件而不重命名它,c#,asp.net,visual-studio-2010,C#,Asp.net,Visual Studio 2010,我有一个循环遍历的XML文件集合,并将有错误的文件移动到另一个文件位置。但是,当我使用system.io.file.move函数时,它要求我指定一个文件名,而不是移动文件路径。是否有一种方法可以将文件从一个位置移动到另一个位置,同时保持相同的名称?我目前正在根据文件在数组中的位置创建一个名称,这实际上是不可行的 string ErrorPath = string.Format(@"{1}ErroredXml{0}.xml", errorLength, errorPaths); //If typ

我有一个循环遍历的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++;
    }
}
您可以使用来提取原始文件名,并使用以下方法构造目标路径:

您可以使用来提取原始文件名,并使用以下方法构造目标路径:


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

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

第二个参数(文件名) @“c:\temp2\MyTest.txt”


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

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

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

第二个参数(文件名) @“c:\temp2\MyTest.txt”

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

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