若
要進行檔案的基本讀寫,您可以使用g_file_get_contents()、g_file_set_contents()函式,這兩個函式會對檔案作
整個讀取與整個寫入的動作。
以下直接以程式作為示範,您可以從命令列引數設定檔案來源與目的地,將檔案讀入,顯示在螢幕上並寫入另一個檔案:
#include <glib.h>
handle_error(GError *error) { if(error != NULL) { g_printf(error->message); g_clear_error(&error); } }
int main(int argc, char *argv[]) { gchar *src, *dest; gchar *content; gsize length; GError *error = NULL; if(argc >= 3) { src = argv[1]; dest = argv[2]; } else { return 1; } if (!g_file_test(src, G_FILE_TEST_EXISTS)) { g_error("Error: File does not exist!"); }
g_file_get_contents(src, &content, &length, &error); handle_error(error); g_print("%s\n", content); g_file_set_contents(dest, content, -1, &error); handle_error(error); g_free (content); return 0; }
g_file_test()函式可以測試檔案的幾個狀態:
- G_FILE_TEST_IS_REGULAR:
不是符號連結檔或目錄
- G_FILE_TEST_IS_SYMLINK:
符號連結檔
- G_FILE_TEST_IS_DIR:
目錄
- G_FILE_TEST_IS_EXECUTABLE:
可執行檔
- G_FILE_TEST_EXISTS:
檔案是否存在
g_file_get_contents()可以指定檔案,將檔案讀入content中,並將長度讀入
length,如果讀取成功會傳回TRUE,失敗會傳回FALSE,錯誤相關資訊會設定給GError,而g_file_set_contents()的
使用類似,長度設定為-1表示寫入整個字串。
在 GtkTextView 中曾寫過一個與GTK圖形元件結合的檔案讀取程式。
|
|