2006-11-18

在 nautilus 中加入顯示檔案說明的功能

在 GNU/LINUX 中有個指令 file 可用來說明檔案的相關資訊,不過這是個 command line 下的指令,如果在我們使用 nautilus 時也能有這個功能,那就很帥了。

其實在 ~/.gnome2/nautilus-scripts/ 這個目錄下,我們可加入一些自己寫的 script 程式,以本例來說,寫一個 File type 的 script 程式,並放在 ~/.gnome2/nautilus-scripts/ 目錄下, 那麼當你在使用 nautilus 按右鍵時,會出現以下的畫面,看到沒,彈出的視窗多了一個 Scripts 這個項目,在此項目內有我們所寫的 File type 這個用來加強 nautilus 的 script 程式。



下面這張圖是程式碼,寫完後請將此程式放在 ~/.gnome2/nautilus-scripts/ 這個目錄下,並將其設定為可執行。



這個程式是使用 php-cli 來寫的,並加上內含 file 及 zenity 程式,說明如下

1. array_shift($argv);

$argv 是參數,當我們選取檔案時,會自動加到這個一維陣列中,不過因為第一個參數是程式本身,所以必須使用 array_shift() 來去掉。

2. $tmp_filename = `file -b "$filename"`;

這是結合 php 和使用外部指令的寫法,當在 php 內要使用外在指令時,需加上 ` ...... ` , 這個符號位於 esc 鍵的下面。

為何要用 "$filename" 這樣的方式,而不用 $filename 呢,主要是有些檔案內有空格。

3. `zenity --info --title="$filename" --text="$tmp_filename"`;

這是使用 zenity 這個指令,來借用其 gtk 的 gui 功能,這個指令很好用,在 UBUNTU 中也有安裝,可使用 zenity --help 來了解其用法,或是在 gnome 的 help (按 f1)中,用 "zenity" 這個字串來 search,裏面有圖文並茂的說明,相信看了後很快就了解其用法了。

以下這張圖就是執行時的畫面。注意到沒,我選了三個檔案,這是最後一個檔案 fuji 顯示的 file 資訊,雖然沒有附加檔名,但一樣可抓出這是個 png 格式的檔案。



最後,為何要用 php 來寫呢?用 sh 來寫可能效率會比較好,但說實話,前一陣子,試了不下十幾種語言,搞得腦筋有點給它亂掉, php 可做到的,就用 php 來寫吧!

沒有留言 :

張貼留言