在c#中移动文件而不重命名它
我有一个循环遍历的XML文件集合,并将有错误的文件移动到另一个文件位置。但是,当我使用system.io.file.move函数时,它要求我指定一个文件名,而不是移动文件路径。是否有一种方法可以将文件从一个位置移动到另一个位置,同时保持相同的名称?我目前正在根据文件在数组中的位置创建一个名称,这实际上是不可行的在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
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));