檔案工具模組

傳回目錄與子目錄所有檔案
取得磁碟機的序號
取得 ASCII 檔案行數
建立完整子目錄
取得檔案字串路徑
取得 Binary 檔案內容
將 Windows API FileTime 轉成 VB Date
設定某目錄與子目錄內所有檔案的時間
取得 ASCII 檔案全部內容
以字串陣列取得 ASCII 檔案全部內容
取得檔案字串檔名
取得磁碟機所剩空間
自定檔案日期時間
將 VB Date 轉成 Windows API FileTime

傳回目錄與子目錄所有檔案

myDir 會傳回陣列,使用方法說明如下:

tDir=myDir("C:\Life\Staff\防洪運轉\Technolegy\",vbDirectory)

for i=lbound(tDir) to ubound(tDir)
 debug.print i,tDir(i)
next i

引數 類型 說明
hPath 必要 路徑及副檔名,可使用萬用字元
Attributes 可省略 同 VB Dir 函數 Attributes,預設值為 vbNormal
SearchSub 可省略 是否搜尋子目錄,預設值為 False

設定某目錄與子目錄內所有檔案的時間

函數名:mySetAllFileTime,傳回值為總共的設定檔案數,另外目錄不可設定時間

引數 類型 說明
hPath 必要 目標路徑
hDate 必要 設定日期
SearchSub 可省略 是否搜尋子目錄,預設值為不搜尋

範例:

mySetAllFileTime "C:\Life\Staff\防洪運轉\Technolegy\", CDate("1999/1/1 1:00:00"), True)

說明:

很多軟體,比如說 Windows 的目錄中都是相同的日期,有時可以作為追蹤版本的參考,但改日期最好還是確認這個目錄下的所有檔案是否適合改日期

取得磁碟機的序號

函數名:myGetSerialNumber

引數 類型 說明
hDriver 可省略 磁碟機名稱
範例 傳回值
myGetSerialNumber("c") 17E6-1873
myGetSerialNumber("d") 17E9-0D74

說明:

本函數需參照數學工具模組變數轉16進位字串工具模組的 AddFormattoChar 函數

取得 ASCII 檔案全部內容

函數名:myGetStringBinaryFile ,以二進位檔方式一次將純文字檔讀取完畢並傳回

引數 類型 說明
lpFileName 字串 檔案名稱

範例:

TextBox1.Text=myGetStringBinaryFile("C:\autoexec.bat")

取得 ASCII 檔案行數

函數名:GetFileLine ,以二進位檔方式一次將純文字檔讀取完畢並計算換行字元以判定行數

引數 類型 說明
hFile 字串 檔案名稱
NoNullString 選擇性 是否不要空行 (該行字串長度為 0 )

範例:

nLine=GetFileLine("C:\autoexec.bat")

以字串陣列取得 ASCII 檔案全部內容

函數名:myGetMutiLineFile ,以二進位檔方式一次將純文字檔讀取完畢,並將第 1 至 n 行分別存入字串陣列後傳回

引數 類型 說明
lpFileName 字串 檔案名稱
wFlags 可省略 Default 為全部資料,預設值,No_Null_Line 代表空行不讀入

範例:

FileBuffer=myGetMutiLineFile("C:\autoexec.bat")
tLong=CLng(FileBuffer(1)) ' 將第一行字串內容轉變成整數

建立完整子目錄

函數名:myMkDir ,Visual Basic 內附的 MkDir 僅能建立一層子目錄,利用遞迴觀念逐層目錄檢查,若不存在則建立子目錄,成功傳回 True

引數 類型 說明
hPath 字串 路徑名

範例:

myMkDir "C:\Temp\Sub1\Sub2\Sub3\Sub4\Sub5\Sub6"

取得檔案字串路徑

函數名:myGetPath

引數 類型 說明
lpFileName 字串 完整路徑與檔名字串

範例:

myGetPath("c:\temp\test.xls") ' 傳回 c:\temp

取得檔案字串檔名

函數名:myGetSingleFileName

引數 類型 說明
lpFullFilename 字串 完整路徑與檔名字串

範例:

myGetSingleFileName("c:\temp\test.xls") ' 傳回 test.xls

取得磁碟機所剩空間

函數名:myGetDiskFreeSpace

引數 類型 說明
lpRootPathName 字串 磁碟機字串
dwFlags 整數 dfs_FreeBytes = 0 ,傳回所剩空間,預設值
dfs_TotalBytes = 1,傳回所有空間

範例:

myGetDiskFreeSpace("c:\") ' 傳回 C 碟所剩空間 4115365888
myGetDiskFreeSpace("c:\", dfs_TotalBytes) ' 傳回 C 碟所有空間 8586977280

取得 Binary 檔案內容

函數名:myGetBinaryFile ,以二進位檔方式讀取欲取得之內容並以位元陣列方式傳回

引數 類型 說明
lpFileName 字串 檔案名稱
hFileSeek 整數 欲取得檔案內容起始位置,可省略,預設為 1
GetLen 整數 欲取得檔案內容長度 (Bytes),可省略,預設至檔尾

範例:

Dim tBytes() as Byte
tBytes = myGetBinaryFile("C:\autoexec.bat", 15, 18)

自定檔案日期時間: (自時間工具模組移入)

函數名:mySetFileTime,傳回原先之檔案日期時間

引數:

引數 說明
lpFileName 檔名字串
hDate 可省略, VB 日期格式,若省略則不做設定動作,只傳回檔案日期時間

範例:

OldDate=mySetFileTime ("c:\autoexec.bat",Now) ' 將現在的時間設定給 autoexec.bat 檔
mySetFileTime "c:\autoexec.bat",OldDate ' 設定回原先的時間

將 Windows API FileTime 轉成 VB Date

函數名:Win32FileTimeToVB,傳回日期格式

引數 類型 說明
hFileTime FILETIME FILETIME 為 Windows API 的自訂型態

範例:

Win32FileTimeToVB(VBToWin32FileTime(Now)) ' 傳回 Now

將 VB Date 轉成 Windows API FileTime

函數名:VBToWin32FileTime,傳回 FILETIME

引數 類型 說明
hDate 日期 日期格式

範例:

Win32FileTimeToVB(VBToWin32FileTime(Now)) ' 傳回 Now