C #을 사용하여 파일 이름을 바꾸려면 어떻게합니까?
답변
System.IO.File.Move를 보고 파일을 새 이름으로 “이동”하십시오.
System.IO.File.Move("oldfilename", "newfilename");
답변
System.IO.File.Move(oldNameFullPath, newNameFullPath);
답변
File.Move 메서드에서 파일이 이미 있으면 덮어 쓰지 않습니다. 그리고 그것은 예외를 던질 것입니다.
따라서 파일이 존재하는지 확인해야합니다.
/* Delete the file if exists, else no exception thrown. */
File.Delete(newFileName); // Delete the existing file if exists
File.Move(oldFileName,newFileName); // Rename the oldFileName into newFileName
또는 예외를 피하기 위해 시도 캐치로 둘러 쌉니다.
답변
당신은 File.Move
그것을 할 수 있습니다 .
답변
다음을 추가하십시오.
namespace System.IO
{
public static class ExtendedMethod
{
public static void Rename(this FileInfo fileInfo, string newName)
{
fileInfo.MoveTo(fileInfo.Directory.FullName + "\\" + newName);
}
}
}
그리고…
FileInfo file = new FileInfo("c:\test.txt");
file.Rename("test2.txt");
답변
-
첫 번째 해결책
System.IO.File.Move
여기에 게시 된 솔루션을 피 하십시오 (표시된 답변 포함). 네트워크를 통해 장애 조치됩니다. 그러나 복사 / 삭제 패턴은 로컬 및 네트워크를 통해 작동합니다. 이동 솔루션 중 하나를 따르되 대신 복사로 바꿉니다. 그런 다음 File.Delete를 사용하여 원본 파일을 삭제하십시오.이름 바꾸기 방법을 만들어 단순화 할 수 있습니다.
-
사용의 용이성
C #에서 VB 어셈블리를 사용하십시오. Microsoft.VisualBasic에 대한 참조 추가
그런 다음 파일 이름을 바꾸려면
Microsoft.VisualBasic.FileIO.FileSystem.RenameFile(myfile, newName);
둘 다 문자열입니다. myfile에는 전체 경로가 있습니다. newName은 그렇지 않습니다. 예를 들면 다음과 같습니다.
a = "C:\whatever\a.txt"; b = "b.txt"; Microsoft.VisualBasic.FileIO.FileSystem.RenameFile(a, b);
C:\whatever\
폴더는 이제 포함됩니다b.txt
.
답변
파일을 새 파일로 복사 한 다음 System.IO.File
클래스를 사용하여 이전 파일을 삭제할 수 있습니다 .
if (File.Exists(oldName))
{
File.Copy(oldName, newName, true);
File.Delete(oldName);
}