본문 바로가기
개발 이야기/C# 이야기

C# File클래스 파일 복사, 이동, 삭제

by 런던살자 2019. 6. 24.

안녕하세요 마블랑입니다.

 

파일을 다루는 가장 기본적인 기능 파일복사, 이동, 삭제를 C# 으로 구현하였습니다.

 

어느 프로그래밍 언어나 마찬가지로 C#도 파일을 다룰수 있는 클래스가 기본으로 제공이 되기 때문에 어렵지 않게 구현할 수 있습니다.

 

 

직접 구현한 예제 파일을 설명하며 파일을 다루는 방법을 알아보도록하죠 

 

각각 복사할 파일과 이동할 파일을 선택하면 다음과 같이 파일을 선택하는 다이얼로그(OpeaDialog)가 출력됩니다.

 

이 파일선택 다이얼로그도 ColorDialog처럼 윈도우에서 제공하므로 아주 편리한 기능이 아닐수 없군요

 파일을 선택하면 아래와 같은 경로가 텍스트 파일로 보이고 복사할 위치를 선택만 하면 해당 위치로 파일이 복사가 됩니다. 

 

파일삭제 삭제할 파일의 경우 단순히 삭제 기능만 있기 때문에 위치를 따로 지정하지 않았습니다 ^^ 

 

그럼 각각 코드를 살펴보겠습니다.

using System;
using System.IO;
using System.Windows.Forms;

namespace WindowsForms_Test_003_0
{
    public partial class Form1 : Form
    {
        string strCopy_ext="";
        string strMove_ext = "";
        public Form1()
        {
            InitializeComponent();
        }

        private void Bt_Copy_before_Click(object sender, EventArgs e)
        {

            if (openFileDialog_before.ShowDialog() == DialogResult.OK) {
                tb_Copy_before.Text = openFileDialog_before.FileName;
                strCopy_ext = openFileDialog_before.SafeFileName.Split('.')[1];
            }
        }

        private void Bt_Copy_after_Click(object sender, EventArgs e)
        {
            if (openFileDialog_after.ShowDialog() == DialogResult.OK)
            {
                tb_Copy_after.Text = openFileDialog_after.FileName+ "."+strCopy_ext;
                File.Copy(tb_Copy_before.Text, tb_Copy_after.Text);
            }
        }

        private void Bt_Move_before_Click(object sender, EventArgs e)
        {
            if (openFileDialog_before.ShowDialog() == DialogResult.OK)
            {
                tb_Move_before.Text = openFileDialog_before.FileName;
                strMove_ext = openFileDialog_before.SafeFileName.Split('.')[1];
            }
        }

        private void Bt_Move_after_Click(object sender, EventArgs e)
        {
            if (openFileDialog_after.ShowDialog() == DialogResult.OK)
            {
                tb_Move_after.Text = openFileDialog_after.FileName + "." + strCopy_ext;
                File.Move(tb_Move_before.Text, tb_Move_after.Text);
            }
        }

        private void Bt_delete_Click(object sender, EventArgs e)
        {
            if (openFileDialog_before.ShowDialog() == DialogResult.OK)
            {
                tb_delete.Text = openFileDialog_before.FileName;
                File.Delete(tb_delete.Text);
            }
        }
    }
}

 

주석을 따로 달지 않아 간단하게 설명을 드리면 복사, 이동, 삭제 순으로 버튼 이벤트가 나열되어 있습니다. (화면에 보이는 순서대로 라고 생각하시면 됩니다^^)

 

메인폼에는 OpeaDialog 를 두개 사용했습니다. 원본 파일들을 예로 들면 파일이 존재하는지 여부를 OpeaDialog가 직접해주기 때문에 하나는 파일 체크가 되는 OpeaDialog 이고 복사할 위치를 선택하는 OpeaDialog 들은 파일 존재 여부를 체크하지 않게 설정해 두었습니다.

 

 

버튼을 통해 원본파일을 선택하면 확장자를 따로 보관을 합니다.

 

그리고 이동되거나 복사할 위치를 선택하면 자동으로 확장자를 추가하도록 해두었습니다. 

 

코드가 어렵지 않으니 간단하게 예제를 만들어서 테스트 해본다음 활용하시면 될거 같습니다.

 

 

이상 마블랑이었습니다.

 

읽어주셔서 고맙습니다.

 

 

댓글