Symbian OS 檔案伺服器 三

2021-05-27 21:19:25 字數 3019 閱讀 9344

rfile

概述

實現了建立開啟乙個檔案,以及在單一檔案上的所有操作,包括:讀寫檔案、在檔案中定位、在檔案中鎖和解鎖、設定檔案屬性。在使用上面功能時,必須連線乙個檔案伺服器會話,並且檔案處於開啟狀態。

開啟檔案的方式:

1、使用open()成員函式開啟乙個已存在的檔案,通過設定訪問模式,可以對檔案進行讀或寫操作;如果檔案不存在將返回錯誤。

2、使用create()成員函式建立並開啟乙個檔案,對檔案進行寫操作,如果檔案已存在將返回錯誤。

3、使用replace()成員函式開啟乙個檔案,對檔案進行寫操作;如果檔案已存在將替換原檔案,如果檔案不存在將建立檔案。

4、使用temp()成員函式建立並開啟乙個臨時檔案,對檔案進行讀或寫操作。

rfile中定義多個過載的read()和write()函式,每個函式都用於不同的讀寫方式。

rfileapi

1、open()、create()、replace()、temp()、close()、flush()

import_c tint open(rfs&afs, const tdesc &aname, tuintafilemode);

開啟乙個已存在的檔案進行讀或寫操作。如果檔案不存在將返回錯誤。afs為已連線的檔案伺服器會話的引用;afilemode為檔案的開啟模式(詳細見tfilemode)。如果嘗試開啟乙個"唯讀"屬性的檔案進行寫操作,將返回錯誤。檔案開啟後,當前檔案寫位置預設為檔案開始處,可以通過seek()設定不同的寫位置。

import_c tint create(rfs&afs, const tdesc &aname, tuintafilemode);

建立並開啟乙個檔案進行讀操作,並自動設定檔案的屬性為存檔。如果檔案已存在或檔案路徑不存在將返回錯誤。

import_c tintreplace(rfs &afs, const tdesc&aname, tuint afilemode);

開啟乙個檔案進行寫操作,並自動設定檔案的屬性為存檔。如果檔案已存在,則代替已存在檔案的內容;如果檔案不存在,則建立新檔案。如果檔案已存在或檔案路徑不存在將返回錯誤。

import_c tint temp(rfs&afs, const tdesc &apath, tfilename&aname,

tuint afilemode);

建立乙個唯一檔名的臨時檔案進行讀或寫。

import_c voidclose();

關閉檔案。任何檔案將在檔案伺服器會話結束時自動關閉。

import_c tintflush();

提交資料到檔案內。儘管close()也能夠在關閉檔案前自動呼叫flush()提交資料。但close()不能獲得提交資料失敗返回的錯誤資訊。

2、seek()

import_c tint seek(tseekamode, tint &apos) const;

設定檔案的讀寫位置,也可以獲得檔案當前的讀寫位置。檔案開始的讀寫位置為0。amode指定了檔案的查詢的起點(檔案開始位置eseekstart、檔案結束位置eseekend、檔案當然位置eseekcurrent);apos指定了相對於查詢起點位置的位元組數偏移量,可以為負值。函式執行後apos將返回檔案新的讀寫位置。

3、size()、setsize()

import_c tint size(tint&asize) const;

獲得當前檔案的位元組大小。asize返回當然檔案的位元組大小。

import_c tintsetsize(tint asize);

設定檔案的位元組大小。如果檔案的大小減少了,那麼資料將從檔案結束位置處刪除。設定檔案大小後,檔案當前的讀寫位置不會改變或改變為檔案結束位置。必須在檔案以寫操作開啟檔案時使用該函式。

4、att()、setatt()、modified()、setmodified()、set()

import_c tint att(tuint&aattvalue) const;

獲得檔案的屬性。

import_c tintsetatt(tuint asetattmask, tuint aclearattmask);

設定檔案屬性並同時清除檔案其他屬性。

import_c tintmodified(ttime &atime) const;

獲得檔案最後的修改時間。

import_c tintsetmodified(const ttime&atime);

設定檔案最後的修改時間。

import_c tint set(constttime &atime, tuintasetattmask,

tuint aclearattmask);

同時設定檔案的屬性和最後修改時間。

5、rename()

import_c tintrename(const tdesc &anewname);

將開啟的檔案重新命名為指定的檔名。如果指定的檔名與開啟的檔名相同,但路徑不同,則將開啟的檔案移動到指定的路徑下。

6、drive()

import_c tint drive(tint&adrivenumber, tdriveinfo&adriveinfo) const;

獲得檔案所在的驅動器的資訊。

檔案伺服器

實現對檔案增刪改查,若是伺服器需要考慮的壓縮 檔案你儲存在電腦裡面也可以,儲存在電腦裡面給乙個路徑就可以了,為什麼要用檔案伺服器 對檔案的操作有記錄 比如增刪改查,可以花式查詢並對結果做操作,之前需要用比較複雜的正則才可以 做到,比如按照日期查詢,尤其是數量高到幾萬的時候,window自帶的檔案管理...

檔案伺服器搭建 如何搭建檔案伺服器?

1.前2期我發了一期檔案伺服器的好處,那麼這期我就講解下如何搭建檔案伺服器,來方便我們的日常辦公。接下來我們來講解下檔案伺服器構造。如下圖,基本有光貓 交換機 伺服器 普通辦公電腦幾個部分組成。如果你是個新廠地,從無到有,這個時候要提前做好規劃,了解場地的布局,根據實際情況畫出網路拓撲圖,然後再進行...

FTP檔案伺服器

ftp file transfer protocol 檔案傳輸協議,工作在tcp ip模型的應用層,在客戶端與伺服器之間進行資料的傳輸。客戶端開啟乙個隨機的埠x 埠號大於1024,小於65535 連線至伺服器的21號命令埠。源埠為客戶端隨機埠x,遠端埠為伺服器端口21。客戶端開始監聽埠 x 1 同時...