C# 에서 파일 이동을 하려면 File.Move 메서드를 사용한다. 특정 폴더의 파일들을 이동시키려면 폴더에 있는 파일들과 폴더경로가 필요하다. 그리고, 이것을 메서드로 만들어 놓으면 두고두고 사용할 수 있다. 특정 폴더의 파일 이동을 위한 동작은 폴더에 있는 모든 파일들을 열거형으로 읽은 후 파일 클래스를 사용하여 사용자가 정한 파일 폴더로 이동시키면 된다.
C# 특정 폴더의 파일 이동 메서드 만들기
파일 이동은 파일을 관리하는 방법 중 하나인데, C#은 이것을 지원하고, 단순히 메서드로 만들어 놓으면 코딩할 때 도움이 된다.
특정 폴더의 파일 이동을 할 때 간단한 방법은 폴더를 지정하고 파일 클래스의 파일 이동 메서드를 사용하면 된다.
파일과 관련된 기능을 익히기 가장 쉬운 방법은 C#을 이용하여 윈도우에 있는 파일 탐색기를 똑같이 만들어 보면 된다.
파일탐색기는 공기같은 존재이며, 자주 사용하다보니 하찮아 보일 뿐 없으면 굉장히 불편한 존재이다.
필요한 것
C#으로 특정 폴더 내의 파일을 이동시키지 위해 필요한 것은 비주얼스튜디오와 C# 문법만 알면 된다.
검색이 귀찮다면 AI 에 물어봐도 되지만, 이 간단한 코드도 에러가 나는 경우들이 주의하자.
에러는 나더라도 어떻게 만들면 되는지 힌트는 구할 수 있기 때문에 코드를 작성하는 것은 쉽다.
아래는 특정 폴더의 파일 이동을 위해 필요한 것이다.
- 비주얼 스튜디오 커뮤니티
Visual Studio: 소프트웨어 개발자 및 Teams용 IDE 및 코드 편집기 (microsoft.com) - C# 문법
반복문: for, while, foreach
Directory.EnumerateFiles( 폴더 경로 )
File.Move( 원본파일명, 이동할 파일명 )
Path.Combine( 경로1, 경로2 )
코드 작성하기
이제 코드를 작성해 보자.
아래는 특정 폴더 내의 모든 파일을 자신이 원하는 폴더로 이동시키는 함수를 만든 것이다.
위에서 언급한 내용이 다 들어가 있지만, 정작 코드는 간단하다.
폴더 내의 파일들이 얼마나 있는지 알 수 없기에 foreach 반복문을 통해 폴더 내의 파일을 모두 얻을 수 있다.
이 때 Directory.EnumerateFiles 메서드를 사용하여 파일목록을 열거형 형태로 얻을 수 있다.
파일을 이동시키기 위해 File.Move 메서드를 사용한다.
using System.IO;
. . .
private void MoveFileInDirectory(string aSrcDir, string aDestDir)
{
foreach (var file in Directory.EnumerateFiles(aSrcDir))
{
File.Move(file, Path.Combine(aDestDir, Path.GetFileName(file)));
}
}
코드의 설명
위의 코드에 대한 간단한 설명은 다음과 같다.
이미 위에서도 언급했지만, 폴더 내의 모든 파일을 이동시키는 것이기 때문에 파일들의 정보를 얻어야 하고, 이동할 폴더의 경로를 지정해 주도록 한다.
- foreach
반복문을 통해 폴더내의 파일들을 하나씩 처리하도록 한다. - Directory.EnumerateFiles
특정 폴더내의 파일을 열거형으로 반환한다. - File.Move
특정 폴더로 파일을 이동시킨다. - Path.Combine
경로와 파일명을 합친다.
'programming > C#' 카테고리의 다른 글
C# 특정 폴더의 파일 목록 불러오기 Directory.EnumerateFiles 메서드 (0) | 2024.05.21 |
---|---|
C# 덮어쓰기 가능한 파일 이동 메서드 만들기 (0) | 2024.05.18 |
댓글