您的位置:首页 > 编程语言 > Go语言

GTK Gossip: 目錄資訊

2010-12-10 15:01 393 查看
如果您要取得目錄的資訊,可以使用GDir及其相關的函式,您可以使用g_dir_open()函式指定一個目錄路徑,這會傳回GDir物件,接著您可以使用g_dir_read_name()讀取目錄下的檔案名稱。

直接來看個範例,下面這個程式示範如何從命令列引數輸入要查詢的目錄,並顯示該目錄下的內容:

dir_demo.c

#include <glib.h>

void listDir(const gchar *parent, int hier) {

const gchar *file, *fullPath;

GDir *dir;

int i;

dir = g_dir_open(parent, 0, NULL);

while((file = g_dir_read_name(dir))) {

for(i = 0; i < hier; i++) {

g_print("    ");

}

fullPath = g_build_filename(parent, file, NULL);

if(g_file_test(fullPath, G_FILE_TEST_IS_DIR)) {

g_print("[%s]/n", file);

listDir(fullPath, hier + 1);

}

else {

g_print("%s/n", file);

}

}

g_dir_close(dir);

}

int main(int argc, char *argv[]) {

listDir(argv[1], 0);

return 0;

}


在程式中,g_build_filename()可以協助建立檔案路徑名稱,您可以指定目錄或檔案名稱,最後以一個NULL作
為結尾,g_build_filename()會自行依作業系統,使用適當的目錄分隔符號(Linux下的/或Windows下的/),建立完整的檔案或
目錄路徑。

一個執行的範例如下所示:

$ dir_demo ~/library

[hibernate-3.2]

build.bat

build.sh

build.xml

changelog.txt

[doc]

[api]

allclasses-frame.html

allclasses-noframe.html

constant-values.html

deprecated-list.html

help-doc.html

index-all.html

index.html

jdstyle.css

[org]

[hibernate]

[action]

..略

另外還有幾個簡便的檔案操作函式,像是g_rename()可更改檔案名稱,g_remove()可移除檔案,g_rmdir()可刪除目錄,g_mkdir()可建立目錄等,這些都可以在 File Utilities
中查詢到使用方式。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: