asp 文件操作函數
文件操作函數中,可分為三種類(lèi)型,就是:1、文件名函數,2、文件管理函數;3、文件I/O函數。
1、文件名函數
文件名函數可以對文件的名稱(chēng)、所在子目錄、驅動(dòng)器和擴展名等進(jìn)行操作。下表列出這些函數及其功能。
函數 說(shuō)明
ExpandFileName() 返回文件的全路徑(含驅動(dòng)器、路徑)
ExtractFileExt() 從文件名中抽取擴展名
ExtractFileName() 從文件名中抽取不含路徑的文件名
ExtractFilePath() 從文件名中抽取路徑名
ExtractFileDir() 從文件名中抽取目錄名
ExtractFileDrive() 從文件名中抽取驅動(dòng)器名
ChangeFileExt() 改變文件的擴展名
ExpandUNCFileName() 返回含有網(wǎng)絡(luò )驅動(dòng)器的文件全路徑
ExtractRelativePath() 從文件名中抽取相對路徑信息
ExtractShortPathName() 把文件名轉化為DOS的8·3格式
MatchesMask() 檢查文件是否與指定的文件名格式匹配
下面就把這些函數作一一介紹:
?、臙xpandFileName()
原型:extern PACKAGE AnsiString __fastcall ExpandFileName(const AnsiString FileName);
功能:返回文件的全路徑(含驅動(dòng)器、路徑)
參數:FileName:要處理的文件名
例:ShowMessage(ExpandFileName(Application->ExeName));//顯示你的程序文件名,如C:\MyBCB\Sample1.EXE
?、艵xtractFileExt()
原型:extern PACKAGE AnsiString __fastcall ExtractFileExt(const AnsiString FileName);
功能:從文件名中抽取擴展名
參數:FileName:要處理的文件名(全路徑)
例:ShowMessage(ExtractFileExt(Application->ExeName));//顯示".exe"
?、荅xtractFileName()
原型:extern PACKAGE AnsiString __fastcall ExtractFileName(const AnsiString FileName);
功能:從文件名中抽取不含路徑的文件名
參數:FileName:要處理的文件名
例:ShowMessage(ExtractFileExt("c:\\Winnt\\SOL.EXE"));//顯示"SOL.EXE"
?、菶xtractFilePath()
原型:extern PACKAGE AnsiString __fastcall ExtractFilePath(const AnsiString FileName);
功能:從文件名中抽取路徑名
參數:FileName:要處理的文件名
例:ShowMessage(ExtractFilePath("Winnt\\SOL.EXE"));//顯示"Winnt\"
?、蒃xtractFileDir()
原型:extern PACKAGE AnsiString __fastcall ExtractFileDir(const AnsiString FileName);
功能:從文件名中抽取目錄名(和上個(gè)函數不同,不包括最后的"\")
參數:FileName:要處理的文件名
例:ShowMessage(ExtractFileDir("Winnt\\SOL.EXE"));//顯示"Winnt",注意和上個(gè)函數的區別
?、蔈xtractFileDrive()
原型:extern PACKAGE AnsiString __fastcall ExtractFileDrive(const AnsiString FileName);
功能:從文件名中抽取驅動(dòng)器名
參數:FileName:要處理的文件名
例:ShowMessage(ExtractFileDrive("c:\\Winnt\\SOL.EXE"));//顯示"c:"
?、薈hangeFileExt()
原型:extern PACKAGE System::AnsiString __fastcall ChangeFileExt(const System::AnsiString FileName, const System::AnsiString Extension);
功能:更改文件名的擴展名,不是對真正的文件進(jìn)行改名,只是對文件名這個(gè)字符串進(jìn)行處理
參數:FileName:要改名的文件名,Extension:新的擴展名
例:ShowMessage(ChangeFileExt("c:\\Winnt\\SOL.EXE",".OOO"));//顯示"c:\winnt\SOL.OOO"
?、蘀xpandUNCFileName()
原型:extern PACKAGE AnsiString __fastcall ExpandUNCFileName(const AnsiString FileName);
功能:返回含有網(wǎng)絡(luò )驅動(dòng)器的文件全路徑,格式為:\\機器名\共享名\文件名
參數:FileName:要處理的文件名
例:ShowMessage(ExpandUNCFileName("F:\\Winnt\\SOL.EXE"));/*如果F:是映射的網(wǎng)絡(luò )驅動(dòng)器\\NT40\WINNT,則顯示"\\NT40\WINNT\SOL.EXE"*/
?、虴xtractRelativePath()
原型:extern PACKAGE AnsiString __fastcall ExtractRelativePath(const AnsiString BaseName, const AnsiString DestName);
功能:從文件名中抽取相對路徑信息,如"..\sss\ss.asd"這種形式
參數:BaseName:基準文件名;DestName:目標文件名
例:ShowMessage(ExtractRelativePath("D:\\Source\\c\\1.123","D:\\Source\\Asm\\dz.asm"));/*顯示"..\asm\dz.asm"*/
?、蜤xtractShortPathName()
原型:extern PACKAGE AnsiString __fastcall ExtractShortPathName(const AnsiString FileName);
功能:把文件名轉換為DOS的8、3格式
參數:FileName:要處理的文件名
例:ShowMessage(ExtractShortPathName("E:\\Program Files\\Dual Wheel Mouse\\4dmain.exe"));/*顯示"E:\Progra~1\dualwh~1\4dmain.exe"*/
?、螹atchesMask()
原型:extern PACKAGE bool __fastcall MatchesMask(const AnsiString Filename, const AnsiString Mask);
功能:檢查文件是否與指定的文件名格式匹配
參數:FileName:要處理的文件名;Mask:文件名格式,支持通配符
例:ShowMessage(MatchesMask("Lxf.exe","*.?x?));//顯示"true"
2、文件管理函數
這類(lèi)函數包括設置和讀取驅動(dòng)器、子目錄和文件的有關(guān)的各種操作,下表列出這類(lèi)操作常用的函數及其功能。
函數 功能
CreateDir() 創(chuàng )建新的子目錄
DeleteFile() 刪除文件
DirectoryExists() 判斷目錄是否存在
DiskFree() 獲取磁盤(pán)剩余空間
DiskSize() 獲取磁盤(pán)容量
FileExists() 判斷文件是否存在
FileGetAttr() 獲取文件屬性
FileGetDate() 獲取文件日期
GetCurrentDir() 獲取當前目錄
RemoveDir() 刪除目錄
SetCurrentDir() 設置當前目錄
下面就把這些函數作一一介紹:
?、臗reateDir()
原型:extern PACKAGE bool __fastcall CreateDir(const System::AnsiString Dir);
功能:建立子目錄,如果成功返回true,否則返回false
參數:Dir:要建立的子目錄的名字
例:Create("ASM");//在當前目錄下建立一個(gè)名為ASM的子目錄
?、艱eleteFile()
原型:extern PACKAGE bool __fastcall DeleteFile(const System::AnsiString FileName);
功能:刪除文件,如果成功返回true,否則返回false
參數:FileName:要刪除的文件名
例:if(OpenDialog1->Execute())DeleteFile(OpenDialog1->FileName);
?、荄irectoryExists()
原型:extern PACKAGE bool __fastcall DirectoryExists(const System:: AnsiString Name);
功能:檢測目錄是否存在,如果存在返回true,否則返回false
參數:Name:要檢測的目錄名
例:if(!DirectoryExists("ASM"))CreateDir("ASM");//如果ASM這個(gè)目錄不存在則創(chuàng )建之
?、菵iskFree()
原型:extern PACKAGE __int64 __fastcall DiskFree(Byte Drive);
功能:檢測磁盤(pán)剩余空間,返回值以字節為單位,如果指定的磁盤(pán)無(wú)效,返回-1
參數:Drive:磁盤(pán)的代號,0表示當前盤(pán), 1=A,2=B,3=C 以此類(lèi)推
例:ShowMessage(DiskFree(0));//顯示當前盤(pán)的剩余空間
?、蒁iskSize()
原型:extern PACKAGE __int64 __fastcall DiskSize(Byte Drive);
功能:檢測磁盤(pán)容量,返回值以字節為單位,如果指定的磁盤(pán)無(wú)效,返回-1
參數:Drive:磁盤(pán)的代號,0表示當前盤(pán), 1=A,2=B,3=C 以此類(lèi)推
例:ShowMessage(DiskFree(0));//顯示當前盤(pán)的容量
?、蔉ileExists()
原型:extern PACKAGE bool __fastcall FileExists(const AnsiString FileName);
功能:檢測文件是否存在,如果存在返回true,否則返回false
參數:FileName:要檢測的文件名
例:if(FileExists("AAA.ASM"))DeleteFile("AAA.ASM");
?、薋ileGetAttr()
原型:extern PACKAGE int __fastcall FileGetAttr(const AnsiString FileName);
功能:取得文件屬性,如果出錯返回-1
返回值如下表,如果返回$00000006表示是一個(gè)具有隱含和系統屬性的文件(4+2)
常量 值 含義
faReadOnly $00000001 只讀文件
faHidden $00000002 隱含文件
faSysFile $00000004 系統文件
faVolumeID $00000008 卷標
faDirectory $00000010 目錄
faArchive $00000020 歸檔文件
例:if(FileGetAttr("LLL.TXT")&0x2)ShowMessage("這是一個(gè)有隱含屬性的文件");
與此對應的有FileSetAttr() ,請自已查閱幫助系統
?、蘁ileGetDate()
原型:extern PACKAGE int __fastcall FileGetDate(int Handle);
功能:返回文件的建立時(shí)間到1970-1-1日0時(shí)的秒數
參數:Handle:用FileOpen()打開(kāi)的文件句柄。
例:
int i=FileOpen("C:\\autoexec.bat",fmOpenRead);
ShowMessage(FileGetDate(i));
FileClose(i);
與此對應的有FileSetDate(),請自已查閱幫助系統
?、虶etCurrentDir()
原型:extern PACKAGE AnsiString __fastcall GetCurrentDir();
功能:取得當前的目錄名
例:ShowMessage(GetCurrentDir());
?、蜶emoveDir()
原型:extern PACKAGE bool __fastcall RemoveDir(const AnsiString Dir);
功能:刪除目錄,如果成功返回true,否則返回false
參數:Dir:要刪除的目錄名
例:if(DiectoryExists("ASM"))RemoveDir("ASM");
?、蟂etCurrentDir()
原型:extern PACKAGE bool __fastcall SetCurrentDir(const AnsiString Dir);
功能:設置當前目錄,如果成功返回true,否則返回false
參數:Dir:要切換到的目錄名
例:SetCurrentDir("C:\\WINDOWS");
3、文件I/O函數
這類(lèi)函數完成對文件的讀寫(xiě)相關(guān)的操作,這種類(lèi)型的操作和C的基于I/O文件操作類(lèi)似,下表列出這類(lèi)操作常用的函數及其功能。
FileOpen() 打開(kāi)文件
FileClose() 關(guān)閉文件
FileRead() 讀文件
FileSeek() 文件定位
FileWrite() 寫(xiě)文件
FileCreate() 創(chuàng )建文件
下面就對這些函數作詳細介紹。
?、臚ileOpen()
原型:extern PACKAGE int __fastcall FileOpen(const AnsiString FileName, int Mode);
功能:打開(kāi)文件,如果成功返回其句柄,否則返回-1
參數:FileName:要打開(kāi)的文件名;Mode:打開(kāi)的方式,取值如下表,可用"或"("|")運算符連接。
常量 值 說(shuō)明
-------------------------------------------------------------
fmOpenRead 0 以只讀屬性打開(kāi)
fmOpenWrite 1 以只寫(xiě)屬性打開(kāi)
fmOpenReadWrite 2 以讀/寫(xiě)屬性打開(kāi)
fmShareCompat 0 兼容FCB方式(匯編中有相應的DOS功能調用,感興趣自已查閱相關(guān)資料)
fmShareExclusive 16 共享方式:以獨占方式打開(kāi),在關(guān)閉以前,別人不能訪(fǎng)問(wèn)
fmShareDenyWrite 32 共享方式:拒絕寫(xiě)訪(fǎng)問(wèn)
fmShareDenyRead 48 共享方式:拒絕讀訪(fǎng)問(wèn)
fmShareDenyNone 64 共享方式:無(wú)限制,允許讀寫(xiě)
例:int i=FileOpen("C:\\WINDOWS\\Win.ini",fmOpenReadWrite|fmShareExclusive);
?、艶ileClose()
原型:extern PACKAGE void __fastcall FileClose(int Handle);
功能:關(guān)閉打開(kāi)的句柄。
參數:Handle:要關(guān)閉的句柄
例:FileClose(i);
?、荈ileRead()
原型:extern PACKAGE int __fastcall FileRead(int Handle, void *Buffer, int Count);
功能:讀文件,返回實(shí)際讀取的字節數,句柄必須首先由FileOpen或FileCreate創(chuàng )建。
參數:Handle:要讀取的句柄;Buffer:存放讀取的數據的緩沖區;Count:想讀取的字節數
例:char str[400];FileRead(hnd1,str,400);
?、菷ileSeek()
原型:extern PACKAGE int __fastcall FileSeek(int Handle, int Offset, int Origin);
功能:移動(dòng)文件讀取指針,成功返回文件指針的位置,失敗返回-1
參數:Handle:相關(guān)聯(lián)的句柄;Offset:移動(dòng)的量;Orgin:移動(dòng)的基準,0=文件頭,1=當前位置,2=文件尾。
例:ShowMessage(FileSeek(hnd1,0,2));//取得文件的長(cháng)度
?、蒄ileWrite()
原型:extern PACKAGE int __fastcall FileWrite(int Handle, const void *Buffer, int Count);
功能:寫(xiě)文件,返回實(shí)際寫(xiě)入的字節數,句柄必須首先由FileOpen或FileCreate創(chuàng )建。
參數:Handle:要寫(xiě)入的句柄;Buffer:存放寫(xiě)入數據的緩沖區;Count:想寫(xiě)入的字節數
例:char str[]="I Love You";FileWrite(hnd1,str,strlen(str));
?、蔉ileCreate()
原型:extern PACKAGE int __fastcall FileCreate(const AnsiString FileName);
功能:創(chuàng )建文件。成功返回其句柄,否則返回-1
參數:FileName:要創(chuàng )建的文件名
例:if(!FileExists("KC.C"))hnd1=FileCreate("KC.C");
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請
點(diǎn)擊舉報。