본문 바로가기
programming/C#

C# 특정 폴더의 파일 이동 메서드 만들기

by 개코 - 개발과 코딩 2024. 5. 5.

C# 에서 파일 이동을 하려면 File.Move 메서드를 사용한다. 특정 폴더의 파일들을 이동시키려면 폴더에 있는 파일들과 폴더경로가 필요하다. 그리고, 이것을 메서드로 만들어 놓으면 두고두고 사용할 수 있다. 특정 폴더의 파일 이동을 위한 동작은 폴더에 있는 모든 파일들을 열거형으로 읽은 후 파일 클래스를 사용하여 사용자가 정한 파일 폴더로 이동시키면 된다.

C# 특정 폴더 파일 이동 메서드 만들기

C# 특정 폴더의 파일 이동 메서드 만들기

파일 이동은 파일을 관리하는 방법 중 하나인데, C#은 이것을 지원하고, 단순히 메서드로 만들어 놓으면 코딩할 때 도움이 된다.
특정 폴더의 파일 이동을 할 때 간단한 방법은 폴더를 지정하고 파일 클래스의 파일 이동 메서드를 사용하면 된다.
파일과 관련된 기능을 익히기 가장 쉬운 방법은 C#을 이용하여 윈도우에 있는 파일 탐색기를 똑같이 만들어 보면 된다.
파일탐색기는 공기같은 존재이며, 자주 사용하다보니 하찮아 보일 뿐 없으면 굉장히 불편한 존재이다.

필요한 것

C#으로 특정 폴더 내의 파일을 이동시키지 위해 필요한 것은 비주얼스튜디오와 C# 문법만 알면 된다.
검색이 귀찮다면 AI 에 물어봐도 되지만, 이 간단한 코드도 에러가 나는 경우들이 주의하자.
에러는 나더라도 어떻게 만들면 되는지 힌트는 구할 수 있기 때문에 코드를 작성하는 것은 쉽다.
아래는 특정 폴더의 파일 이동을 위해 필요한 것이다.

코드 작성하기

이제 코드를 작성해 보자.
아래는 특정 폴더 내의 모든 파일을 자신이 원하는 폴더로 이동시키는 함수를 만든 것이다.
위에서 언급한 내용이 다 들어가 있지만, 정작 코드는 간단하다.
폴더 내의 파일들이 얼마나 있는지 알 수 없기에 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
    경로와 파일명을 합친다.
반응형

댓글