DJ메탈짱™의 Free Style

[C#, Winform, 윈폼] OpenFileDialog, 파일불러오기, Text, FileStream, StreamReader, List 컬렉션에 저장 본문

일(job)/MS(Microsoft)

[C#, Winform, 윈폼] OpenFileDialog, 파일불러오기, Text, FileStream, StreamReader, List 컬렉션에 저장

뽀&쏭 2016. 1. 7. 13:50



OpenFileDialog 컨트롤을 사용하여 파일을 불러오고,

불러온 파일의 내용을 List 컬렉션에 담아서 반환한다.

 

private void OpenFileDialog()

{

List<string> rList = new List<string>();

 

        using (OpenFileDialog opd = new OpenFileDialog())

        {               

                       opd.DefaultExt = "All files";                               // 기본 파일타입 설정

                       opd.Filter = "All files (*.*)|*.*"// 파일타입

                       opd.Multiselect = false;            // 다중선택되지 않도록.               

                       string strAppDir = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);                                

                       opd.InitialDirectory = strAppDir;   // 파일불러오기를 했을 때 제일 처음에 열리는 디렉토리 설정

 

                       if (opd.ShowDialog() == DialogResult.OK)

                       {

                       try

                       {

                                      if (opd.SafeFileName.LastIndexOf(".") > -1)

                                      {

                                      MessageBox.Show("확장자가 존재하는 파일은 선택하실 수 없습니다.");

                                      return;

                                      }

 

                                      string fileName = opd.FileName;

 

                                      // 선택한 파일을 Open

                                      rList = ReadTextFileToList(fileName);

                       }

                       catch (Exception ex)

                       {

                                      MessageBox.Show(ex.InnerException != null ? ex.InnerException.Message : ex.Message);

                       }

                       }

}

} 

 

/// <summary>

/// 작성일 : 2013/11/15

/// 작성자 : 최보현

/// OpenFileDialog에 의해 선택된 파일을 List컬렉션에 담는다

/// </summary>

/// <param name="fileName">파일명</param>

/// <returns>List Collections</returns>

private List<string> ReadTextFileToList(string fileName)

{

List<string> readStreamReaderList = new List<string>();

        using (FileStream iStream = new FileStream(fileName, FileMode.Open, FileAccess.Read))

        {

                       using (StreamReader reader = new StreamReader(iStream, Encoding.Default))

                       {

                       reader.BaseStream.Seek(0, SeekOrigin.Begin);

                       while (reader.Peek() > -1)

                       {

                                      readStreamReaderList.Add(reader.ReadLine());

                       }

reader.Close();

                       iStream.Close();

                       }

}

return readStreamReaderList;

}