본문 바로가기
IT, 컴퓨터

[C#] 파일 입출력 및 파일 정보 알아보기

by 별찌파파 2023. 10. 17.
728x90
반응형
SMALL

 

반응형

프로그래밍을 하다 보면 파일 입출력 할 경우가 많습니다. 계산된 결과를 저장하거나, 계산에 필요한 값들을 읽어서 메모리에 오리는 행위들입니다. 오늘은 C#에서 파일 입출력하는 방법을 알아보도록 하겠습니다.

C#에서는 파일 입출력이 상당히 쉽습니다. 오늘은 간단하게 파일을 입출력하는 방법을 알아보겠습니다.

 

컨트롤 준비

파일을 쓰고 지우기 위해서 간단히 Winform에 컨트롤을 추가합니다. 추가할 컨트롤은 버튼 2개와 텍스트 박스입니다.

버튼 하나는 Write 하나는 Read로 바꾸고 이름도 변경해 줍니다. 그리고 텍스트 박스는 Multiline을 True로 놓아 조금 크게 만들어줍니다. 하단 참고하세요.

 

파일 쓰기

 

Write 버튼을 더블 클릭하여 이벤트 함수를 만들고 아래와 같이 코딩합니다.

        private void btnWrite_Click(object sender, EventArgs e)
        {
            string [] text = textBox1.Text.Split('\n');
            StreamWriter sw = new StreamWriter(@"c:\temp\text.txt");
            for (int i = 0; i < text.Length; i++)
            {
                sw.WriteLine(text[i].Trim());
            }
            sw.Flush();
            sw.Close();
        }

기본적으로 c:\temp\text.txt 파일에 textbox의 내용을 저장하는 부분입니다. 간단히 텍스트 내용을 그대로 넣어도 되지만, 엔터가 있는 경우 엔터까지 포함해서 넣도록 했습니다.

StreamWriter를 이용하면 WriteLine을 이용하여 간단히 라인별로 텍스트를 파일에 쓸 수 있습니다.

참고로 System.IO가 있어야 하니 꼭 추가해 주시기 바랍니다.

 

실행해서 구동되는지 테스트해봅니다.

 

 

 

제대로 동작하는 것을 확인해보았습니다.

 

 

파일 읽기

 

다음은 파일 읽기를 해보겠습니다. Read 버튼을 더블클릭하여 이벤트 함수를 만듭니다. 이번에는 StreamWrite가 아닌 File의 ReadAllLine() 함수를 이용해 보겠습니다.

      private void btnRead_Click(object sender, EventArgs e)
      {
            string[] text = File.ReadAllLines(@"c:\temp\text.txt");
            for(int i=0; i<text.Length; i++)
            {
                textBox1.AppendText(text[i] + Environment.NewLine);                
            }
        }

이와 같이 간단한 코드로 Write로 넣었던 파일을 불러와 textbox에 입력할 수 있습니다. 그리고 AppendText를 하면 리턴이 없기 때문에 별도로 NewLine을 넣어줍니다.

 

실행해 보겠습니다.

이와 같이 제대로 읽어드리는 것을 확인할 수 있습니다.

 

 

파일정보 가져오기

 

다음은 파일정보를 가져오도록 해보겠습니다. Read 버튼 이벤트 함수를 비우고 아래와 같이 작성해 보겠습니다.

        private void btnRead_Click(object sender, EventArgs e)
        {
            FileInfo fi = new FileInfo(@"c:\temp\text.txt");
            textBox1.AppendText(string.Format("파일경로 : {0}", fi.FullName) + Environment.NewLine);
            textBox1.AppendText(string.Format("파일명 : {0}", fi.Name) + Environment.NewLine);
            textBox1.AppendText(string.Format("확장자 : {0}", fi.Extension) + Environment.NewLine);
            textBox1.AppendText(string.Format("생성시간 : {0}", fi.CreationTime) + Environment.NewLine);
            textBox1.AppendText(string.Format("용량 : {0} byte", fi.Length) + Environment.NewLine);
        }

파일 정보를 읽어와서 textbox에 출력하는 프로그램입니다. FileInfo 객체를 이용하여 파일의 정보를 활용할 수 있습니다. 파일은 아까 생성했던 text이니 참고하시고, 실행해 보겠습니다.

이와 같이 파일의 경로, 파일명, 확장자, 생성시간(이외 액세스시간 등이 가능), 용량 등을 활용할 수 있습니다.

 

 

728x90
반응형
LIST