听起来很简单,但事实并非如此。我正在尝试移动一个我这样做的文件:
string newFileName = string.Format("{0}-{1}-{2}-t{3:00}-{4:00}.txt", 2013, 10, 5, 05, 06);
它看起来像:2013-10-5-05-06.txt
,从默认目录(..\bin\debug\2013-10-5-05-06.txt
)到另一个目录(c:\Users\Public\Folder
)。我想保留文件的名称,以便将具有几乎相同名称(小差异)的其他文件移动到同一文件夹。我尝试了几种方法(Path.Combine(), string.Concat()..
)但没有成功。
答案 0 :(得分:0)
只需使用此代码段
即可string CurrentFileNameAndPath; //the path the file you want to move
string newPath; //only the new the folderPath
System.IO.FileInfo FileYouWantToMove = new System.IO.FileInfo(CurrentFileNameAndPath);
string NewFileNameAndPath = newPath + "\\" + FileYouWantToMove.Name; //remember that using fullname will get the folder and filename
FileYouWantToMove.MoveTo(NewFileNameAndPath);
所以让我们以此为例,我有这个文件C:/Dir1/file1.txt,我想将其目录更改为C:/ Dir2 / right?那就像这样
string CurrentFileNameAndPath = @"C:/Dir1/file1.txt";
string newPath = @"C:/Dir2/";
System.IO.FileInfo FileYouWantToMove = new System.IO.FileInfo(CurrentFileNameAndPath);
string NewFileNameAndPath = newPath + "\\" + FileYouWantToMove.Name;
FileYouWantToMove.MoveTo(NewFileNameAndPath);
结果将是C:/Dir1/file1.txt中的该文件现在将在C:/Dir2/file1.txt中,它已被移动并维护相同的文件名和扩展名
答案 1 :(得分:0)
这样的事实上是非常微不足道的
var srcFile = "..\bin\debug\2013-10-5-05-06.txt";
var destFolder = Path.GetDirectoryName(Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory));
var destFile = Path.Combine(destFolder, Path.GetFileName(srcFile));
File.Move(srcFile, destFile);
请注意,Move会引发各种例外,例如IOException
/ UnauthorizedAccessException
等等,因此在适当情况下处理这些内容是明智的。