C#에서 파일 이름을 변경하려면 File 클래스의 Move() 메서드를 사용하면 됩니다. 이 메서드는 원래 파일을 이동시키는 용도로도 쓰이지만, 같은 디렉터리 내에서 다른 파일명으로 지정하면 사실상 이름 변경 기능으로 동작합니다.
Move 메서드로 파일 이름 바꾸기
예를 들어 다음과 같은 경로에 파일이 있다고 가정해 보겠습니다.
D:\tom.txt
이 파일의 이름을 아래와 같이 변경하고 싶다면 Move() 메서드를 활용할 수 있습니다.
D:\tim.txt
Move() 메서드는 첫 번째 인수에 기존 파일 경로, 두 번째 인수에 새 파일 경로를 전달합니다. 두 경로가 같은 폴더에 있으면 파일이 이동되지 않고 이름만 변경됩니다.
전체 예제 코드
아래는 파일 이름을 변경하는 완전한 C# 코드입니다.
using System;
using System.IO;
public class Demo {
public static void Main() {
File.Move(@"D:\tom.txt", @"D:\tim.txt");
Console.WriteLine("파일 이름이 성공적으로 변경되었습니다!");
}
}코드 설명
using System.IO;— 파일 작업에 필요한 File 클래스를 사용하기 위해 IO 네임스페이스를 가져옵니다.@"D:\tom.txt"— 문자열 앞의 @ 기호는 축자 리터럴(verbatim string)을 의미하며, 역슬래시(\)를 이스케이프 처리하지 않고 그대로 사용할 수 있게 해줍니다.File.Move()— 첫 번째 경로의 파일을 두 번째 경로로 옮기며, 같은 디렉터리 내에서는 이름 변경 효과를 냅니다.
주의 사항
새 파일 경로에 이미 같은 이름의 파일이 존재하면 IOException이 발생합니다. .NET Core 3.0 이상에서는 세 번째 인수로 true를 전달하여 기존 파일을 덮어쓸 수 있습니다.
File.Move(@"D:\tom.txt", @"D:\tim.txt", true); // 덮어쓰기 허용 (.NET Core 3.0+)
또한 대상 파일이 이미 존재하는지 먼저 확인한 후 처리하는 것이 안전합니다.
if (!File.Exists(@"D:\tim.txt")) {
File.Move(@"D:\tom.txt", @"D:\tim.txt");
} else {
Console.WriteLine("같은 이름의 파일이 이미 존재합니다.");
}이처럼 C#에서는 Move() 메서드 하나만으로 간단하게 파일 이름을 변경할 수 있습니다.