於是,如何在短時間內把檔案修改完成的計畫,就悄悄的在我的電腦上運作著...
所謂『工欲善其事,必先利其器』,要把檔案改回來,首先當然要知道哪些檔案已經被更動了。根據當時iTunes的設定值來看,我在G:MP3裡面的所有檔案,只要是副檔名為MP3的檔案,全部都經由iTunes的整理而變的非常規則,換句話說,我們只要找出所有副檔名為MP3的檔案,就可以確定到底要動到哪些檔案了。
但是,我所使用的Windows既沒有在UNIX上可以使用的 find 工具,內建的搜尋功能又破腳到不行,要怎樣才能快速且精確的取得所有修改的檔案呢?於是,我便利用了 Perl 著手寫出下面的Perl Script 來幫助我取得這些被更改過的檔案清單:
#!/usr/bin/perl print " "; $ext_path="./"; open (FIL, ">>123.txt") or die "Cannot open save file! "; &get_filelist($ext_path, ""); close FIL; #print "@dir"; sleep 3; exit; |
而這個Script最精華的部分,就在於下面的 get_filelist() 副常式:
sub get_filelist { if ($type eq "file") { closedir (DIR); |
在一開始的前5行,只是很簡單的宣告變數,以及一個開資料夾的步驟而已。接下來,讀取資料夾中的所有檔案,並且利用正規表示式過濾掉開頭為 . 或 .. 的檔案,然後在順便確定一下讀到的東西是檔案還是目錄,如果是檔案的話就將檔案名稱連同路徑一起儲存到 123.txt 當中;若是目錄的話則使用遞迴呼叫移至該目錄底下並且繼續讀取檔案。
不一會兒〈好吧!嚴格說來是大約過了十秒鐘之後〉,所有變動的檔案都連著它們的路徑乖乖的儲存在 123.txt 當中啦!或許各位看倌會覺得奇怪,取得檔案目錄有哪些好處?嘿嘿!它可幫了我不少大忙,稍後會介紹另一個神奇的 Script ,它將會以驚人的速度來完成這個艱鉅的任務,請大家拭目以待嚕!
留言列表