[M1 Mac, Big Sur 11.6.8, clang 13.0.0, FLTK 1.3.8, NO IDE, C++17]
前回の続きです。
サイズ的にはあまり重要ではありませんが、Thumnail Mediaディレクトリも空にするようにしました。
これでFinal Cut Library ManagerというアプリのClean機能と同等になりました。
void FCPClean(){
string dirPath = "/movie"; // ライブラリ保存ディレクトリ
vector<string> paths = getFilePath(dirPath, "fcpbundle");
int num = 1;
for (string path:paths){
cout << num << " " << path << endl;
vector<string> dirs = getDirPath(path);
int num2 = 1;
for (string dir:dirs){
if (dir.find("High Quality Media") != std::string::npos){
cout << "High Quality Mediaディレクトリ " << num2 << " " << dir << endl;
struct stat statBuf;
int detect = stat(dir.c_str(), &statBuf);
if (detect == 0){
vector<string> dirs2 = getDirPath(dir);
for (string dir:dirs2){
cout << "削除対象dir " << dir << endl;
std::filesystem::remove_all(dir);
}
} else {
cout << "ディレクトリは削除済みです" << endl;
}
num2 += 1;
}
}
int num3 = 1;
for (string dir:dirs){
if (dir.find("Thumbnail Media") != std::string::npos){
cout << "Thumbnail Mediaディレクトリ " << num3 << " " << dir << endl;
struct stat statBuf;
int detect = stat(dir.c_str(), &statBuf);
if (detect == 0){
vector<string> dirs2 = getDirPath(dir);
for (string dir:dirs2){
cout << "削除対象dir " << dir << endl;
std::filesystem::remove_all(dir);
}
} else {
cout << "ディレクトリは削除済みです" << endl;
}
num3 += 1;
}
}
num += 1;
}
output_line->insert("FCP Clean完了!\n");
}