類別 Zlib::GzipFile
Zlib::GzipFile
是用來處理 gzip 格式壓縮檔的抽象類別。操作定義在子類別中,Zlib::GzipReader
用於讀取,而 Zlib::GzipWriter
用於寫入。
應該將 GzipReader
與 IO
或類似 IO 的物件關聯後使用。
Method
目錄¶ ↑
-
::open (
Zlib::GzipReader::open
和Zlib::GzipWriter::open
) -
comment= (
Zlib::GzipWriter#comment=
) -
eof? (
Zlib::GzipReader#eof?
) -
lineno (
Zlib::GzipReader#lineno
) -
lineno= (
Zlib::GzipReader#lineno=
) -
mtime= (
Zlib::GzipWriter#mtime=
) -
path(當底層
IO
支援路徑時)
(由於內部結構,文件可能會出現在 Zlib::GzipReader
或 Zlib::GzipWriter
中)
公開類別方法
建立一個 GzipReader
或 GzipWriter
與 io
關聯,傳遞任何必要的額外選項,並使用新建立的物件執行區塊,就像 File.open
一樣。
執行區塊後,GzipFile
物件會自動關閉。如果您想要讓關聯的 IO
物件保持開啟,您可以在區塊中呼叫 Zlib::GzipFile#finish
方法。
static VALUE rb_gzfile_s_wrap(int argc, VALUE *argv, VALUE klass) { return gzfile_wrap(argc, argv, klass, 0); }
公開實例方法
與 IO#closed?
相同
static VALUE rb_gzfile_closed_p(VALUE obj) { struct gzfile *gz; TypedData_Get_Struct(obj, struct gzfile, &gzfile_data_type, gz); return NIL_P(gz->io) ? Qtrue : Qfalse; }
傳回 gzip 檔案標頭中記錄的註解,如果沒有註解,則傳回 nil。
static VALUE rb_gzfile_comment(VALUE obj) { VALUE str = get_gzfile(obj)->comment; if (!NIL_P(str)) { str = rb_str_dup(str); } return str; }
傳回未壓縮資料的 CRC 值。
static VALUE rb_gzfile_crc(VALUE obj) { return rb_uint2inum(get_gzfile(obj)->crc); }
關閉 GzipFile
物件。與 Zlib::GzipFile#close
不同,此方法絕不會呼叫關聯 IO
物件的 close 方法。傳回關聯的 IO
物件。
static VALUE rb_gzfile_finish(VALUE obj) { struct gzfile *gz = get_gzfile(obj); VALUE io; io = gz->io; gzfile_close(gz, 0); return io; }
傳回壓縮層級。
static VALUE rb_gzfile_level(VALUE obj) { return INT2FIX(get_gzfile(obj)->level); }
傳回 gzip 檔案標頭中記錄的最後修改時間。
static VALUE rb_gzfile_mtime(VALUE obj) { return rb_time_new(get_gzfile(obj)->mtime, (time_t)0); }
傳回 gzip 檔案標頭中記錄的原始檔名,如果沒有原始檔名,則傳回 nil
。
static VALUE rb_gzfile_orig_name(VALUE obj) { VALUE str = get_gzfile(obj)->orig_name; if (!NIL_P(str)) { str = rb_str_dup(str); } return str; }
傳回 gzip 檔案標頭中記錄的 OS 代碼編號。
static VALUE rb_gzfile_os_code(VALUE obj) { return INT2FIX(get_gzfile(obj)->os_code); }
與 IO#sync
相同
static VALUE rb_gzfile_sync(VALUE obj) { return (get_gzfile(obj)->z.flags & GZFILE_FLAG_SYNC) ? Qtrue : Qfalse; }
與 IO
相同。
static VALUE rb_gzfile_to_io(VALUE obj) { return get_gzfile(obj)->io; }