合併資料夾二

2021-08-01 11:40:30 字數 2782 閱讀 9444

需要按照一定規則合併大量資料夾

這些資料夾是按照命名分類的

這些資料夾的命名存在一定規律,比如a_001_005,a_004-010,需要把連續的資料夾合併

1、根據指定目錄下,找到資料夾所在根目錄;該目錄下包含需要合併的資料夾

如:

2、將待合併的資料夾,合併到乙個主資料夾中;

該合併規則如下:

規則一:

將該三個資料夾合併為乙個資料夾:

規則二:

將該兩個資料夾合併為乙個資料夾:

【注】規則一與二的區別便是:規則一是從001開始,規則二是從004開始。也就是開頭並不能確定是從第幾景開始的,可能是001或者002或者003……

規則三:

從資料夾名字可以看出:中間缺少了006景資料,那麼要合併的資料夾就是

最終結果表示為:

3、將每個資料夾中的

四個檔案:copyfinished、created、對應的paf檔案進行剪下到合併後資料夾中。

4、全部合併完成後,刪除原資料夾

public

void

getmergefiles()

), lbltext);

directoryinfo dir = new directoryinfo(_stroldmergetwo);

directoryinfo folders = dir.getdirectories();

list type = getalltypefolders(folders);

int index = 1;

foreach (string item in type)

int a = 100 * index / type.count;

workermerge.reportprogress(a);

index++;

//string lbltext1 = "正在處理";

action(p =>

//), lbltext1);

}//string strsf = directory.getdirectories(_stroldmergetwo, "d*_*_*", searchoption.alldirectories);

m_log.info("所有檔案獲取完畢");

}catch (exception ex)

}//篩選出所有資料夾的種類

public list getalltypefolders(directoryinfo folders)

}return type;

}//獲取資料夾中包含的特殊欄位的資料夾

public list getfoldernames(directoryinfo folders, string folder_type)

}return folder_name;

}//處理資料夾

public list processfolders(string root_path, list folders, string folder_type)

bool serial_flag = true;

for (int i = 1; i < order.count - 1; i = i + 2)//判斷偶數字確定是否連續

mergefolders(root_path, serial_folders, folder_type);

for (int k = i / 2 + 1; k < folders.count; k++)}}

if (serial_flag == true)

else

return processed_folders;

}//合併資料夾

private

bool

mergefolders(string root_path, list folders, string folder_type)

//建立資料夾

string start = order[0].tostring();

string end = order[order.count - 1].tostring();

string newfolder = folder_type + "_" + start + "_" + end;

directoryinfo dir = new directoryinfo(_strnewmergetwo);

dir.createsubdirectory(newfolder);

//移動檔案

foreach (string item_folder in folders)

}//if (item_folder != newfolder)//避免資料夾為1誤刪

// }

string lbltext1 = labelcontrol1.text + "\n" + newfolder + "處理完畢";

labelcontrol1.invoke(new action(p =>

), lbltext1);

flag = true;

}catch (exception ex)

return flag;

}

多個檔案 git 資料夾 多個資料夾文件的合併

設定工作路徑 filename 新建列表,存放每個檔案資料框 每乙個excel讀取後存放在資料框 frame 新建列表,存放每個檔案資料框 每乙個excel讀取後存放在資料框 forroot,files,documentsinos.walk dir print root,documents ford...

利用遞迴刪除資料夾(資料夾中套資料夾)

刪除目錄 bool deldir const ansistring p if p.isempty p.length 4 return false 引數必須大於3,即不能為磁碟根目錄或空白 int len p.length char path p.c str ansistring dir ansist...

拷貝檔案 資料夾 建立資料夾 刪除資料夾操作

qt拷貝檔案 資料夾 建立資料夾 刪除資料夾操作 cpp view plain copy brief 拷貝檔案到目的資料夾 param srcfilename 原始檔全路徑,比如 f tx wwxx.txt f tx des desd param desfilepathname 要copy到的目的路...