|
2 | 2 | #include "FileManager.h" |
3 | 3 | #include <filesystem> |
4 | 4 | #include <string> |
| 5 | +#include "NatSort.hpp" |
5 | 6 |
|
6 | 7 |
|
7 | 8 | namespace fs = std::filesystem; |
@@ -35,96 +36,87 @@ FileManager::FileManager(string path) |
35 | 36 | file_count = file_list.size(); |
36 | 37 | dir_count = dir_list.size(); |
37 | 38 | all_count = file_count + dir_count; |
38 | | -} |
39 | | - |
40 | | -int FileManager::get_file_count() const { return file_count; } |
41 | | - |
42 | | -int FileManager::get_dir_count() const { return dir_count; } |
43 | 39 |
|
44 | | -int FileManager::get_all_count() const { return all_count; } |
45 | | - |
46 | | -//파일만 출력 |
47 | | -void FileManager::print_file_list() |
48 | | -{ |
49 | | - for (string& element : file_list) { |
50 | | - cout << element << endl; |
51 | | - } |
| 40 | + //Natural Sort 알고리즘으로 친절하게 정렬도 수행 (Option) |
| 41 | + SI::natural::sort(file_list); |
| 42 | + SI::natural::sort(dir_list); |
52 | 43 | } |
53 | 44 |
|
54 | | -//디렉토리만 출력 |
55 | | -void FileManager::print_dir_list() |
| 45 | +int FileManager::get_count(FileType ft) const |
56 | 46 | { |
57 | | - for (string& element : dir_list) { |
58 | | - cout << element << endl; |
| 47 | + if (ft == FileType::File) { |
| 48 | + return file_count; |
| 49 | + } |
| 50 | + else if (ft == FileType::Directory) { |
| 51 | + return dir_count; |
| 52 | + } |
| 53 | + else if (ft == FileType::All) { |
| 54 | + return all_count; |
59 | 55 | } |
60 | 56 | } |
61 | 57 |
|
62 | | -//전부 출력 |
63 | | -void FileManager::print_all_list() |
64 | | -{ |
65 | | - print_file_list(); |
66 | | - print_dir_list(); |
67 | | -} |
68 | | - |
69 | | -//------------------------------------------- |
70 | | -// |
71 | | -//파일 이름 치환 |
72 | | -void FileManager::replace_file_name(string& find, string& replace) |
73 | | -{ |
74 | | - replace_name(file_list, find, replace); |
75 | | -} |
76 | | - |
77 | | - |
78 | | -//파일 이름 오른쪽에 문자열 삽입 |
79 | | -void FileManager::insert_right_file_name(string& insert_str) |
80 | | -{ |
81 | | - insert_right_name(file_list, insert_str); |
82 | | -} |
83 | | - |
84 | | -//파일 이름 왼쪽에 문자열 삽입 |
85 | | -void FileManager::insert_left_file_name(string& insert_str) |
86 | | -{ |
87 | | - insert_left_name(file_list, insert_str); |
88 | | -} |
89 | | - |
90 | | -//------------------------------------------- |
91 | 58 |
|
92 | | -void FileManager::replace_dir_name(string& find, string& replace) |
| 59 | +void FileManager::print_list(FileType ft) |
93 | 60 | { |
94 | | - replace_name(dir_list, find, replace); |
95 | | -} |
96 | | - |
97 | | -void FileManager::insert_left_dir_name(string& insert_str) |
98 | | -{ |
99 | | - insert_left_name(dir_list, insert_str); |
100 | | -} |
| 61 | + if (ft == FileType::File) { |
| 62 | + for (string& element : file_list) |
| 63 | + cout << element << endl; |
| 64 | + } |
| 65 | + else if (ft == FileType::Directory) { |
| 66 | + for (string& element : dir_list) |
| 67 | + cout << element << endl; |
| 68 | + } |
| 69 | + else if (ft == FileType::All) { |
| 70 | + for (string& element : file_list) |
| 71 | + cout << element << endl; |
101 | 72 |
|
102 | | -void FileManager::insert_right_dir_name(string& insert_str) |
103 | | -{ |
104 | | - insert_right_name(dir_list, insert_str); |
| 73 | + for (string& element : dir_list) |
| 74 | + cout << element << endl; |
| 75 | + } |
105 | 76 | } |
106 | 77 |
|
107 | | -//------------------------------------------- |
108 | | - |
109 | | -void FileManager::replace_all_name(string& find, string& replace) |
| 78 | +void FileManager::replace_name(FileType ft, string& find, string& replace) |
110 | 79 | { |
111 | | - replace_name(file_list, find, replace); |
112 | | - replace_name(dir_list, find, replace); |
| 80 | + if (ft == FileType::File) { |
| 81 | + replace_name(file_list, find, replace); |
| 82 | + } |
| 83 | + else if (ft == FileType::Directory) { |
| 84 | + replace_name(dir_list, find, replace); |
| 85 | + } |
| 86 | + else if (ft == FileType::All) { |
| 87 | + replace_name(file_list, find, replace); |
| 88 | + replace_name(dir_list, find, replace); |
| 89 | + } |
113 | 90 | } |
114 | 91 |
|
115 | | -void FileManager::insert_left_all_name(string& insert_str) |
| 92 | +void FileManager::insert_left_name(FileType ft, string& insert_str) |
116 | 93 | { |
117 | | - insert_left_name(file_list, insert_str); |
118 | | - insert_left_name(dir_list, insert_str); |
| 94 | + if (ft == FileType::File) { |
| 95 | + insert_left_name(file_list, insert_str); |
| 96 | + } |
| 97 | + else if (ft == FileType::Directory) { |
| 98 | + insert_left_name(dir_list, insert_str); |
| 99 | + } |
| 100 | + else if (ft == FileType::All) { |
| 101 | + insert_left_name(file_list, insert_str); |
| 102 | + insert_left_name(dir_list, insert_str); |
| 103 | + } |
119 | 104 | } |
120 | 105 |
|
121 | | -void FileManager::insert_right_all_name(string& insert_str) |
| 106 | +void FileManager::insert_right_name(FileType ft, string& insert_str) |
122 | 107 | { |
123 | | - insert_right_name(file_list, insert_str); |
124 | | - insert_right_name(dir_list, insert_str); |
| 108 | + if (ft == FileType::File) { |
| 109 | + insert_right_name(file_list, insert_str); |
| 110 | + } |
| 111 | + else if (ft == FileType::Directory) { |
| 112 | + insert_right_name(dir_list, insert_str); |
| 113 | + } |
| 114 | + else if (ft == FileType::All) { |
| 115 | + insert_right_name(file_list, insert_str); |
| 116 | + insert_right_name(dir_list, insert_str); |
| 117 | + } |
125 | 118 | } |
126 | 119 |
|
127 | | -//------------------------------------------- |
128 | 120 |
|
129 | 121 |
|
130 | 122 |
|
|
0 commit comments