[C#] C #에서 파일 이름 바꾸기

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");


답변

  1. 첫 번째 해결책

    System.IO.File.Move여기에 게시 된 솔루션을 피 하십시오 (표시된 답변 포함). 네트워크를 통해 장애 조치됩니다. 그러나 복사 / 삭제 패턴은 로컬 및 네트워크를 통해 작동합니다. 이동 솔루션 중 하나를 따르되 대신 복사로 바꿉니다. 그런 다음 File.Delete를 사용하여 원본 파일을 삭제하십시오.

    이름 바꾸기 방법을 만들어 단순화 할 수 있습니다.

  2. 사용의 용이성

    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);
}