檔案系統控制項
1. 檔案系統控制項種類
(1) 驅動器列表框(drivelistbox):用來顯示當前機器上的所有碟符
(2) 目錄列表框(dirlistbox):用來顯示當前盤上的所有資料夾
(3) 檔案列表框(filelistbox):用來顯示當前資料夾下的所有檔名
2. 重要屬性
屬性適用的控制項
作用示例
drive
驅動器列表框
包含當前選定的驅動器名
driver1. drive="c"
path
目錄和檔案列表框
包含當前路徑
dir1.path="c:\windows"
filename
檔案列表框
包含選定的檔名
msgbox file1.filename
pattern
檔案列表框
決定顯示的檔案型別
file1.pattern="*.bmp"
3. 重要事件
事件適用的控制項
事件發生的時機
change
目錄和驅動器列表框
驅動器列表框的change事件是在選擇乙個新的驅動器或通過**改變drive屬性的設定時發生
目錄列表框的change事件是在雙擊乙個新的目錄或通過**改變path屬性的設定時發生
pathchange
檔案列表框
當檔案列表框的path屬性改變時發生
pattenchange
檔案列表框
當檔案列表框的pattern屬性改變時發生
click
目錄和檔案列表框
用滑鼠單擊時發生
dblclick
檔案列表框
用滑鼠雙擊時發生
7.2 檔案的讀寫
1. 檔案的有關概念
記錄:計算機處理資料的基本單位,由若干個相互關聯的資料項組成。相當於**中的一行。
檔案:記錄的集合,相當於一張表。
檔案型別:順序檔案、隨機檔案、二進位制檔案。
訪問模式:計算機訪問檔案的方式,vb中有順序、隨機、二進位制三種訪問模式。
2. 順序訪問模式
順序訪問模式的規則最簡單,指讀出或寫入時,從第一條記錄「順序」地讀到最後一條記錄,不可以跳躍式訪問。該模式專門用於處理文字檔案,每一行文字相當於一條記錄,每條記錄可長可短,記錄與記錄之間用「換行符」來分隔。
順序檔案的寫入步驟:開啟、寫入、關閉; 讀出步驟:開啟、讀出、關閉。
(1)開啟檔案
開啟檔案的命令是open,格式為:
open 「檔名」 for 模式 as [#] 檔案號 [len=記錄長度]
說明:1)檔名可以是字串常量也可以是字串變數
2)模式可以是下面之一:
output:開啟乙個檔案,將對該檔案進行寫操作
input:開啟乙個檔案,將對該檔案進行讀操作
3) 檔案號是乙個介於1-511之間的整數,開啟乙個檔案時需要指定乙個檔案號,這個檔案號就代表該檔案,直到檔案關閉後這個號才可以被其他檔案所使用。可以利用freefile()函式獲得下乙個可以利用的檔案號。
例: open "d:\sj\aaa" for output as #1
意思是:開啟d:\sj下aaa檔案供寫入資料,檔案號為#1
(2)寫操作
將資料寫入磁碟檔案所用的命令是:write# 或print#。語法格式:
1) print #檔案號,[輸出列表]
例: open 「d:\sj\test.dat」 for output as #1
print #1,text1.text '把文字框的內容一次性寫入檔案
close #1
2)write #檔案號,[輸出列表]
其中的輸出列表一般指用逗號,分隔的數值或字串表示式。write #與print #的功能基本相同,區別是write #是以緊湊格式存放,在資料間插入逗號,並給字串加上雙引號。
(3) 關閉檔案
結束各種讀寫操作後,必須將檔案關閉,否則會造成資料丟失。關閉檔案的命令是close。
close [#]檔案號[,[#]檔案號]……
例: close #1,#2,#3
(4) 讀操作
1) input #檔案號,變數列表
作用:將從檔案中讀出的資料分別賦給指定的變數。
注意:與write #配套才可以準確地讀出。
2)line input #檔案號,字串變數
用於從檔案中讀出一行資料,並將讀出的資料賦給指定的字串變數,讀出的資料中不包含回車符和換行符,可與print #配套用。
3)input$(讀取的字元數,#檔案號)
該函式可以讀取指定數目的字元。
與讀檔案有關的兩個函式:
lof():返回某檔案的位元組數
eof():檢查指標是否到達檔案尾。
3.隨機訪問模式
該模式要求檔案中的每條記錄的長度都是相同的,記錄與記錄之間不需要特殊的分隔符號。只要給出記錄號,可以直接訪問某一特定記錄,其優點是訪問速度快,更新容易。
(1) 開啟與關閉
開啟:open 「檔名」 for random as [#] 檔案號 [len=記錄長度]
關閉:close #檔案號
注意:檔案以隨機方式開啟後,可以同時進行寫入和讀出操作,但需要指明記錄的長度,系統預設長度為128個位元組。
(2)讀與寫
讀操作:get [#]檔案號,[記錄號],變數名
說明:get命令是從磁碟檔案中將一條由記錄號指定的記錄內容讀入記錄變數中;記錄號是大於1的整數,表示對第幾條記錄進行操作,如果忽略不寫,則表示當前記錄的下一條記錄。
寫操作:put [#]檔案號,[記錄號],變數名
說明:put命令是將乙個記錄變數的內容,寫入所開啟的磁碟檔案指定的記錄位置;記錄號是大於1的整數,表示寫入的是第幾條記錄,如果忽略不寫,則表示在當前記錄後插入一條記錄。
4. 二進位制訪問模式
開啟:open 「檔名」 for binary as [#] 檔案號 [len=記錄長度]
關閉:close #檔案號
該模式是最原始的檔案型別,直接把二進位製碼存放在檔案中,沒有什麼格式,以位元組數來定位資料,允許程式按所需的任何方式組織和訪問資料,也允許對檔案中各位元組資料進行訪問和訪問。
該模式與隨機模式類似,其讀寫語句也是get 和put,區別是二進位制模式的訪問單位是位元組,隨機模式的訪問單位是記錄。在此模式中,可以把檔案指標移到檔案的任何地方,剛開始開啟時,檔案指標指向第乙個位元組,以後隨檔案處理命令的執行而一旦。檔案一旦開啟,就可以同時進行讀寫。
7.3 常用的檔案操作語句和函式
1. filecopy語句
格式:filecopy 源檔名 目標檔名
功能:複製乙個檔案
說明:不能複製乙個已開啟的檔案
2. kill語句
格式:kill 檔名
功能:刪除檔案
說明:檔名中可以使用萬用字元 *,?
3. name語句
格式:name 舊檔名 新檔名
功能:重新命名乙個檔案或目錄
說明:不能使用萬用字元;具有移動檔案功能;不能對已開啟的檔案進行重新命名操作
4. chdrive語句
格式:chdrive 驅動器
功能: 改變當前驅動器
說明:如果驅動器為空,則不變;如果驅動器中有多個字元,則只會使用首字母
5.mkdir語句
格式:mkdir 資料夾名
功能:建立乙個新的目錄
6.chdir語句
格式:chdir 資料夾名
功能:改變當前目錄
說明:改變預設目錄,但不改變預設驅動器。
7. rmdir語句
格式:rmdir 資料夾名
功能:刪除乙個存在的目錄
說明:不能刪除乙個含有檔案的目錄
8. curdir()函式
格式: curdir[(驅動器)]
功能:可以確定任何乙個驅動器的當前目錄。
說明:括號中的驅動器表示需要確定當前目錄的驅動器,如果為空,返回當前驅動器的當前目錄路徑。
檔案系統 why檔案系統
為什麼需要檔案系統,可否由作業系統直接寫裸裝置?裸裝置是一種沒有經過格式化的磁碟或分割槽,即讓作業系統直接管理操作磁碟設定,進行資料讀寫等。通過檔案系統的方式組織磁碟儲存和資料管理有很多好處,比如 1.資料讀取 管理等操作變得簡單便捷 檔案系統給使用者提供了乙個簡單的操作介面,只需簡單的操作就能實現...
檔案系統 檔案系統的架構
vfs是具體檔案系統的抽象,依靠超級塊 inode dentry以及檔案這些結構來發揮作用,檔案系統的架構就體現在這些結構的使用方式中。1 超級塊作用分析 1 2 所有的dentry都指向乙個dentry hashtable dentry hashtable是乙個樹組,每乙個樹組成員都是hash鍊錶...
檔案系統 編寫檔案系統
8.5 編寫乙個檔案系統 如果寫乙個實際檔案系統,但是涉及的東西太多,不容易簡明扼要的理解檔案系統的實現。linux核心中提供的romfs檔案系統是個非常理想的例子,既有實際應用架構,也清晰明了,故以romfs為例項分析檔案系統的實現。一 linux檔案系統的實現要素 編寫新檔案系統涉及一些基本物件...