本文為個(gè)人原創(chuàng)会钝,歡迎轉(zhuǎn)載巨坊,但請(qǐng)務(wù)必在明顯位置注明出處义图!
本文所有源碼發(fā)布于:https://github.com/qiuyi943/FileExt
http://www.reibang.com/writer#/notebooks/5989464/notes/5526124
1疾层、概述
其實(shí)在為這篇博文起標(biāo)題的時(shí)候有點(diǎn)糾結(jié)裁蚁,不知當(dāng)前的標(biāo)題能否明確概括本文介紹的這個(gè)工具的功能苟径。也許結(jié)合以下場(chǎng)景的描述能夠幫助大家了解這個(gè)工具到底是干什么用的案站。
假設(shè)有一個(gè)文件夾“1”,其樹型結(jié)構(gòu)如下所示
1
├── 2
│ └── 3
│ ├── 4
│ │ └── D.txt
│ ├── A.txt
│ ├── B.txt
│ └── C.txt
├── 5
│ ├── 6
│ │ ├── 7
│ │ │ └── F.txt
│ │ └── G.txt
│ └── E.txt
├── 8
│ └── H.txt
└── I.txt
此時(shí)棘街, 有一個(gè)file.list文件里面記錄了想要拷貝的文件(可以是相對(duì)路徑或者絕對(duì)路徑)
./2/3/A.txt
./8/H.txt
./I.txt
./5/6/G.txt
然后使用本文介紹的工具能夠基于源文件夾“1”的樹形結(jié)構(gòu)蟆盐,并按照file.list的內(nèi)容承边,創(chuàng)建一個(gè)新的樹型文件夾“1_[datatime]”,其結(jié)構(gòu)如下所示
1_20160830014128/
├── 2
│ └── 3
│ └── A.txt
├── 5
│ └── 6
│ └── G.txt
├── 8
│ └── H.txt
└── I.txt
2石挂、使用場(chǎng)景
該工具用于將你感興趣的文件從一個(gè)復(fù)雜的樹型結(jié)構(gòu)路徑中摘取出來博助,并通過創(chuàng)建另外一個(gè)完備的樹型結(jié)構(gòu)路徑來保存這些文件。例如痹愚,Android 的一個(gè)模塊中可能會(huì)編譯出多個(gè)JNI庫文件富岳、bin文件以及app文件(可能不常見,但博主現(xiàn)在維護(hù)的模塊卻是如此)拯腮;如果每次對(duì)該模塊進(jìn)行整編窖式,就會(huì)在多個(gè)路徑中生成多個(gè)文件,當(dāng)對(duì)外分發(fā)時(shí)需要?jiǎng)?chuàng)建一個(gè)跟源路徑相同的文件樹型結(jié)構(gòu)动壤,然后再將各個(gè)文件從源路徑中拷貝出來萝喘,費(fèi)時(shí)費(fèi)力,還容易出錯(cuò)琼懊。
3阁簸、系統(tǒng)兼容
該工具基于Python3開發(fā),在win10以及ubuntu 16.04 LTS測(cè)試均可使用肩碟,前提當(dāng)然是系統(tǒng)要已經(jīng)安裝Pyhton3强窖;由于使用了tkinter這個(gè)庫,所以在ubuntu下使用時(shí)削祈,需要安裝python3-tk
sudo apt-get install python3-tk
4翅溺、功能擴(kuò)展
如果file.list中的路徑表示的是一個(gè)文件夾,那么這個(gè)文件夾中的所有內(nèi)容都會(huì)被拷貝髓抑。例如咙崎,file.list的內(nèi)容如下
/media/sf_share/FileExt/1/2/3
此時(shí)被創(chuàng)建出來的文件樹型結(jié)構(gòu)則是
1_20160830020434
└── 2
└── 3
├── 4
│ └── D.txt
├── A.txt
├── B.txt
└── C.txt
如果想要拷貝出當(dāng)前路徑中的所有名為“D.txt”的文件,那么file.list可以這么寫
**/D.txt
此時(shí)被創(chuàng)建出來的文件樹型結(jié)構(gòu)如下
1_20160830020711
└── 2
└── 3
└── 4
└── D.txt
5吨拍、工具使用
工具的使用非常簡(jiǎn)單褪猛,進(jìn)入命令行終端輸入以下命令,便會(huì)彈出對(duì)話框分別選擇源文件夾和file.list(任意文件名)
python3 FileExt.py
選擇文件夾
選擇file.list文件
選擇完文件夾file.list文件之后羹饰,如果文件存在便會(huì)在console窗中輸出類似以下內(nèi)容
./2/3/A.txt --> /media/sf_share/FileExt/1_20160831003900/./2/3/A.txt
./8/H.txt --> /media/sf_share/FileExt/1_20160831003900/./8/H.txt
./I.txt --> /media/sf_share/FileExt/1_20160831003900/./I.txt
./5/6/G.txt --> /media/sf_share/FileExt/1_20160831003900/./5/6/G.txt
6伊滋、源碼下載
本工具的所有源碼已經(jīng)部署至github ,如果已經(jīng)安裝git队秩,可以通過以下命令直接下載:
git clone https://github.com/qiuyi943/FileExt.git