이 프로그램을 만들 때 작성한 클래스다.

개요는 이렇다.

 

1. 복사 대상 폴더를 선택한다.

2. 복사할 폴더를 선택한다.

3. 폴더에 있는 파일들중에 바꿀 텍스트와 원래 텍스트를 적는다.

4. 실행한다.

5. 파일들중 바뀐 항목들을 확인한다.

 

디렉터리 및 파일을 관리하는 부분을 정리

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
        /****************************************************/
        /*                  변수 선언 부분                    */
        /****************************************************/
        private String m_sOriginPath, m_sTargetPath;
        private String m_sOriginText, m_sRewriteText;
        private DirectoryInfo m_dOriginDirInfo;
        private DirectoryInfo m_dTargetDirInfo;
 
        /****************************************************/
        /*        COPY할 폴더 경로에 중복 파일 체크 및 묻기     */
        /****************************************************/
 
        public bool m_CopyReady()
        {
            bool delFlag = false;
            foreach (var OriginFile in m_dOriginDirInfo.GetFiles())
            {
                foreach (var TargetFile in m_dTargetDirInfo.GetFiles())
                {
                    if (OriginFile.Name.Equals(TargetFile.Name))
                    {
                        if (delFlag)
                        {
                            TargetFile.Delete();
                        }
                        else
                        {
                            if (MessageBox.Show("중복된 이름의 파일이 있습니다.\r삭제후 복사합니다",
                                     "입력 취소", MessageBoxButtons.YesNo) == DialogResult.Yes)
                            {
                                TargetFile.Delete();
                                delFlag = true;
                            }
                            else
                            {
                                MessageBox.Show("실행을 취소했습니다.");
                                return false;
                            }
                        }
                    }
                }
            }
            return true;
        }
 
        /****************************************************/
        /*     파일을 한줄씩 읽어 텍스트 검사 후 수정, 파일 쓰기  */
        /****************************************************/
 
        public void m_CopyFiles(String fileName)
        {
            String[] OriginTextLine = System.IO.File.ReadAllLines(
                @m_sOriginPath + "\\" + fileName);
            StreamWriter TargetOutputFile = new StreamWriter(
                @m_sTargetPath + "\\" + fileName);
            if (OriginTextLine.Length > 0)
            {
                for (int i = 0; i < OriginTextLine.Length; i++)
                {
                    OriginTextLine[i] = OriginTextLine[i].Replace(
                        m_sOriginText, m_sRewriteText);
                    
                    TargetOutputFile.WriteLine(OriginTextLine[i]);
                }
            }
            TargetOutputFile.Close();
        }
 
cs

 

MainForm.cs

RewriteCopy.exe

RewriteCopy.cs

 

+ Recent posts