|
9 ChangeDirectory 使指定的目錄為當(dāng)前目錄。 CloseFile 關(guān)閉一個(gè)打開(kāi)的文件。 CopyFile 將一個(gè)文件從一個(gè)文件夾拷貝到另一個(gè)。 CreateDir 創(chuàng)建一個(gè)新文件夾。 CreateFile 創(chuàng)建一個(gè)指定文件名的文件。 DeleteDir 刪除一個(gè)文件夾。 DeleteFile 刪除一個(gè)文件。 ExistsDir 確定指定目錄是否存在。 ExistsDisk 確定指定磁盤(pán)是否存在。 FileCompare 將一個(gè)文件和另一個(gè)比較。 FileDeleteLine 刪除一個(gè)文本文件中的一行。 FileGrep 在一個(gè)文本文件中查找指定文本。 FileInsertLine 在一個(gè)文本文件中插入一行。 FindAllDirs 查找指定文件夾下的所有子文件夾。 FindAllFiles 查找指定文件夾中的所有和一個(gè)文件說(shuō)明匹配的文件和它的子文件夾。 FindFile 查找在指定文件夾中和一個(gè)文件說(shuō)明匹配的第一個(gè)文件。 GetFileInfo 檢索一個(gè)文件的屬性,日期,時(shí)間和大小。 GetLine 從一個(gè)打開(kāi)的文件中檢索一行文本。 OpenFile 打開(kāi)一現(xiàn)存文件。 OpenFileMode 用OpenFile函數(shù)設(shè)置文件打開(kāi)的方式。 ReadBytes 從一個(gè)二進(jìn)制文件中讀取指定的字節(jié)數(shù)。 RenameFile 更名一個(gè)文件。 SeekBytes 在一個(gè)二進(jìn)制文件中定位文件指針。 SetFileInfo 設(shè)置一個(gè)文件的屬性,日期和時(shí)間。 WriteBytes 在一個(gè)二進(jìn)制文件的當(dāng)前文件指針位置寫(xiě)入指定數(shù)目的字節(jié)。 WriteLine 將一個(gè)字符串寫(xiě)入一個(gè)文本文件。 XCopyFile 將一個(gè)或多個(gè)文件從一個(gè)源文件夾拷貝到一個(gè)目標(biāo)文件夾,如果指定則包括子文件夾。 相關(guān)函數(shù) SelectDir 請(qǐng)參閱4.10。 9.1 語(yǔ)法:ChangeDirectory (szPath); 說(shuō)明:ChangeDirectory函數(shù)設(shè)置當(dāng)前目錄。 參數(shù): szPath 指定要被設(shè)置為當(dāng)前目錄的目錄名。該名可以是一個(gè)全限定路徑名或一個(gè)UNC路徑;它必須不包括一個(gè)尾隨反斜杠。如有必要,在調(diào)用ChangeDirectory前調(diào)用StrRemoveLastSlash。 返回值: 0:ChangeDirectory成功設(shè)置指定目錄為當(dāng)前目錄。 < 0:ChangeDirectory未能設(shè)置指定目錄為當(dāng)前目錄。 注解: ·注意在你調(diào)用ChangeDirectory將一個(gè)指定目錄設(shè)為當(dāng)前目錄后,該目錄不能被刪除。在你可以刪除該目錄前,你必須再次調(diào)用ChangeDirectory來(lái)設(shè)置一個(gè)不同的當(dāng)前目錄。 9.2 語(yǔ)法:CloseFile (nvFileHandle); 說(shuō)明:CloseFile函數(shù)關(guān)閉一個(gè)已經(jīng)由調(diào)用OpenFile打開(kāi)的文件。在你關(guān)閉一個(gè)文件后,你不能從中讀或?qū)懙皆撐募?br> 參數(shù): nvFileHandle 指定要關(guān)閉的文件的句柄。 返回值: 0:表明該函數(shù)成功關(guān)閉該文件。 < 0:表明該函數(shù)未能關(guān)閉該文件。 9.3 語(yǔ)法:CopyFile (szSrcFile, szTargetFile); 說(shuō)明:CopyFile函數(shù)創(chuàng)建一個(gè)由參數(shù)szSrcFile指定的文件的拷貝。新文件由參數(shù)szTargetFile指定文件名。 參數(shù): szSrcFile 指定要拷貝的文件的文件名。如果該文件名是限定的,也就是,如果它包括一個(gè)路徑,CopyFile將從指定位置拷貝該文件。如果szSrcFile包含一個(gè)未限定文件名,也就是,沒(méi)有路徑信息,CopyFile將從由系統(tǒng)變量SRCDIR標(biāo)識(shí)的路徑拷貝。為拷貝一組文件,在該參數(shù)位置使用通配符。 szTargetFile 指定給由szSrcFile標(biāo)識(shí)的文件的拷貝的名稱(chēng)。如果文件名是限定的,也就是,如果它包含一個(gè)路徑,CopyFile將把文件拷貝到路徑指定的位置。如果szSrcFile包含一個(gè)未限定文件名,也就是,沒(méi)有路徑信息,拷貝將被創(chuàng)建在由系統(tǒng)變量TARGETDIR指定的目錄中。如果目標(biāo)目錄不存在,它將被創(chuàng)建。 返回值: 0:表明函數(shù)成功地從源目錄拷貝文件至目標(biāo)目錄。 < 0:表明函數(shù)因下列情況之一未能拷貝所要文件: COPY_ERR_CREATEDIR (-27):目標(biāo)目錄不能被創(chuàng)建。確保系統(tǒng)變量TARGETDIR中的路徑語(yǔ)法正確并且你有權(quán)訪(fǎng)問(wèn)目標(biāo)驅(qū)動(dòng)器。 COPY_ERR_MEMORY (-6):函數(shù)未能分配完成拷貝文件進(jìn)程所需的內(nèi)存。盡可能多地終止正在運(yùn)行的應(yīng)用程序以釋放內(nèi)存。 COPY_ERR_NODISKSPACE (-38):函數(shù)未能在目標(biāo)驅(qū)動(dòng)器上找到足夠的磁盤(pán)空間來(lái)拷貝文件。在目標(biāo)驅(qū)動(dòng)器上釋放磁盤(pán)空間。 COPY_ERR_OPENINPUT (-2):函數(shù)未能打開(kāi)系統(tǒng)變量SRCDIR指定的輸入文件。確保源文件有一個(gè)有效的文件名并且源文件和目標(biāo)目錄都存在。 COPY_ERR_OPENOUTPUT (-3):函數(shù)未能拷貝所要文件。 COPY_ERR_TARGETREADONLY (-46):TARGETDIR中的文件是只讀文件。刪除目標(biāo)文件的只讀屬性并重試。 所有其它負(fù)值:表明發(fā)生一些其它不確定錯(cuò)誤。 注解: ·如果你使用未限定文件名并在使用CopyFile時(shí)設(shè)置SRCDIR和 TARGETDIR的值,在調(diào)用CopyFile前用VarSave保存當(dāng)前值并然后用VarRestore重新設(shè)置。如果目標(biāo)目錄不存在,CopyFile創(chuàng)建它。 ·你不能通過(guò)調(diào)用CopyFile時(shí)使用通配符來(lái)重命名一組文件。然而,單獨(dú)一個(gè)文件時(shí)你可以使用CopyFile來(lái)做到。 ·為包括子目錄,調(diào)用XcopyFile函數(shù)。 ·對(duì)于文件傳輸,XCopyFile 是CopyFile的一個(gè)完美替換。XCopyFile可以做版本檢測(cè),標(biāo)記鎖定的.dll和.exe文件待系統(tǒng)重啟后更新,并且遞增共享的.dll和.exe文件的注冊(cè)表訪(fǎng)問(wèn)計(jì)數(shù)器。 ·因?yàn)閃indows 95及更高版本不允許一個(gè)空文件被拷貝,Windows NT不允許創(chuàng)建空文件,CopyFile在這些平臺(tái)下當(dāng)被用來(lái)拷貝空文件(Size=0KB)時(shí)將不工作。 · 在用WriteProfString 或 WriteProfInt修改.ini文件后, Windows 95及更高版本下,你必須在使用CopyFile前刷新高速緩存。所有.ini文件在Windows 95及更高版本下被放在高速緩存中;這種特性可能導(dǎo)致延遲將修改寫(xiě)到指定文件。這接著可能妨礙隨后的文件操作。為避免這個(gè)問(wèn)題,簡(jiǎn)單地以空參數(shù)調(diào)用WriteProfString來(lái)強(qiáng)制Windows 95 及更高版本立即寫(xiě)數(shù)據(jù)到.ini文件,如下所示: 9.4 語(yǔ)法:CreateDir (szDirPath); 說(shuō)明:CreateDir函數(shù)在目標(biāo)驅(qū)動(dòng)器上創(chuàng)建一個(gè)或多個(gè)子目錄。你可以使用一個(gè)包含多層子目錄的路徑,如C:\Programs\Winapps\Myapp。任何路徑中不存在的子目錄,CreatDir將創(chuàng)建它。例如,如果C:\Programs\Winapps 和 C:\Programs\Winapps\Myapp都不存在,這些子目錄將都被CreatDir創(chuàng)建。 參數(shù): szDirPath 指定要?jiǎng)?chuàng)建的子目錄的全限定路徑。將路徑中的每層用一個(gè)反斜杠分隔(通過(guò)使用反斜杠轉(zhuǎn)義符(\\))。 返回值: 0:表明函數(shù)在目標(biāo)驅(qū)動(dòng)器上成功創(chuàng)建指定目錄或指定目錄已經(jīng)存在。 < 0:表明指定目錄不存在并且函數(shù)未能創(chuàng)建指定它。 注解: 下列情況下CreatDir將失敗: 路徑非法; 驅(qū)動(dòng)器或路徑上的任何子目錄是寫(xiě)保護(hù)的; 驅(qū)動(dòng)器名無(wú)效; 你沒(méi)有網(wǎng)絡(luò)特權(quán)來(lái)創(chuàng)建子目錄。 9.5 語(yǔ)法:CreateFile (nvFileHandle, szPath, szFileName); 說(shuō)明:CreateFile函數(shù)創(chuàng)建一個(gè)新文件。如果相同名的文件已經(jīng)存在,CreateFile改寫(xiě)它。在你用CreateFile創(chuàng)建一個(gè)文件前,你必須用OpenFileMode設(shè)置文件方式。 參數(shù): nvFileHandle 返回新文件的句柄。 szPath 指定新文件創(chuàng)建所在的子目錄的全限定路徑。 szFileName 指定創(chuàng)建的文件的文件名。 返回值: 0:表明函數(shù)成功創(chuàng)建新文件。 < 0:表明函數(shù)未能創(chuàng)建新文件。 注解: ·CreateFile創(chuàng)建一個(gè)新文件并把它打開(kāi)以便你可以從新文件中讀或?qū)懙叫挛募?。為?xiě)到一個(gè)現(xiàn)存文件中,你必須首先用OpenFileMode 和OpenFile函數(shù)以FILE_MODE_APPEND方式打開(kāi)文件。 ·當(dāng)操作日志被激活時(shí),CreateFile的函數(shù)操作不存入到卸載記錄中。如果你想要一個(gè)由CreatFile創(chuàng)建的文件被存入到卸載記錄中,則當(dāng)存入功能被激活時(shí),使用XcopyFile傳輸一個(gè)啟動(dòng)程序文件(以你要的文件名)到目標(biāo)系統(tǒng)。你用Enable 和Disable函數(shù)激活和禁用存入功能。當(dāng)存入功能被激活時(shí),XcopyFile操作被存入,啟動(dòng)程序文件被存入后,你可以使用CreatFile和其它文件相關(guān)函數(shù)來(lái)寫(xiě)或改寫(xiě)被存入的啟動(dòng)程序文件。文件名必須保持不變否則它不會(huì)在卸載記錄中找到。 9.6 語(yǔ)法:DeleteDir(szDir, nFlag); 說(shuō)明:DeleteDir函數(shù)刪除一個(gè)子目錄。根據(jù)你在參數(shù)nFlag使用的值,你可以?xún)H當(dāng)子目錄為空時(shí)刪除它,即使子目錄包含文件也刪除它,或刪除整個(gè)根目錄。設(shè)置nFlag需特別謹(jǐn)慎。 參數(shù): szDir 指定要被刪除的目錄的全限定名。 nFlag 指定刪除選項(xiàng)。在該參數(shù)位置傳遞下列預(yù)定義常量之一: ALLCONTENTS:刪除szDir指定的目錄,包括其下的所有子目錄和文件。你刪除的目錄必須是一個(gè)子目錄,不能是驅(qū)動(dòng)器上的一個(gè)根目錄。 ONLYDIR:僅當(dāng)szDir指定的目錄為空時(shí)才刪除它。否則函數(shù)失敗。 ROOT:即使szDir指定的目錄是根目錄也要?jiǎng)h除它。如果szDir是一個(gè)根目錄,DeleteDir將刪除磁盤(pán)上一切東西。 返回值: 0:表明函數(shù)成功刪除子目錄。 < 0:表明函數(shù)未能刪除子目錄。 注解: ·你不能刪除當(dāng)前目錄。 ·你不能刪除一個(gè)網(wǎng)絡(luò)系統(tǒng)上你沒(méi)有適當(dāng)權(quán)利的文件。 ·DeleteDir不能刪除只讀,隱藏或系統(tǒng)文件。 ·如果DeleteDir遇到一個(gè)只讀文件,該函數(shù)可能在只刪除子目錄中一些文件后失敗。 9.7 語(yǔ)法:DeleteFile (szFile); 說(shuō)明:DeleteFile函數(shù)刪除一個(gè)或多個(gè)文件。注意DeleteFile不能刪除只讀,隱藏或系統(tǒng)文件。如果你試圖刪除一個(gè)網(wǎng)絡(luò)系統(tǒng)上你沒(méi)有適當(dāng)文件權(quán)利的文件時(shí),該函數(shù)不起作用。 參數(shù): szFile 指定要?jiǎng)h除文件的名稱(chēng)。如果szFile指定一個(gè)全限定名,也就是,包括一個(gè)路徑,DeleteFile將從指定目錄刪除該文件。如果szFile包含一個(gè)未限定文件名,也就是,沒(méi)有路徑信息,DeleteFile將從由系統(tǒng)變量TARGETDIR指定的目錄中刪除文件。可以在szFile中包含通配符來(lái)刪除多個(gè)文件。 返回值: 0:表明函數(shù)成功刪除指定文件。 < 0:表明函數(shù)未能刪除指定文件。 注解: 你在使用FindFile時(shí)可以使用通配符來(lái)定位文件然后用DeleteFile刪除它們。 9.8 語(yǔ)法:ExistsDir (szPath); 說(shuō)明:ExistsDir函數(shù)在目標(biāo)系統(tǒng)上檢測(cè)指定目錄的存在性。 參數(shù): szPath 指定要在目標(biāo)系統(tǒng)上找到的目錄的全限定路徑。 返回值: EXISTS (0):表明指定目錄存在于目標(biāo)系統(tǒng)上。 NOTEXISTS (-1):表明指定目錄不存在于目標(biāo)系統(tǒng)上。 9.9 語(yǔ)法:ExistsDisk (szDisk); 說(shuō)明:ExistsDisk函數(shù)在目標(biāo)系統(tǒng)上檢測(cè)指定磁盤(pán)驅(qū)動(dòng)器的存在性。 參數(shù): szDisk 指定磁盤(pán)驅(qū)動(dòng)器字符。 返回值: EXISTS (0):表明目標(biāo)系統(tǒng)上存在指定驅(qū)動(dòng)器。 NOTEXISTS (-1):表明目標(biāo)系統(tǒng)上不存在指定驅(qū)動(dòng)器。 9.10 語(yǔ)法:FileCompare (szFileName1, szFileName2, nCompareFlag); 說(shuō)明:FileCompare函數(shù)比較兩個(gè)文件的大小,日期或版本。 參數(shù): szFileName1 指定要比較的第一個(gè)文件的全限定名。 szFileName2 指定要比較的第二個(gè)文件的全限定名。 nCompareFlag 指定比較選項(xiàng)。在該參數(shù)位置傳遞下列預(yù)定義常量之一: COMPARE_SIZE:比較兩個(gè)文件的大小。 COMPARE_DATE:比較兩個(gè)文件的日期。 COMPARE_VERSION:比較兩個(gè)文件的版本資源。 返回值: EQUALS (2):第一個(gè)文件的日期,大小或版本和第二個(gè)的相等。 FILE_NOT_FOUND (-2):函數(shù)未能找到一個(gè)文件或都未能找到。 GREATER_THAN (0):第一個(gè)文件比第二個(gè)文件更新或更大,根據(jù)在參數(shù)nCompareFlag使用的常量: .COMPARE_VERSION 文件一比文件二新。 .COMPARE_DATE 文件一比文件二日期后。 .COMPARE_SIZE 文件一比文件二大。 .LESS_THAN (1) 文件一比文件二舊或小。 OTHER_FAILURE (-1) 發(fā)生不確定錯(cuò)誤。 9.11 語(yǔ)法:FileDeleteLine (szFileName, nStartLineNum, nEndLineNum); 說(shuō)明:FileDeleteLine函數(shù)從一個(gè)文本文件中使用一個(gè)起始行和結(jié)束行行號(hào)來(lái)刪除該區(qū)域的行(包括起始行和結(jié)束行)。該函數(shù)作用于面向行的文本文件;它不作用于二進(jìn)制文件。你可以使用FileDeleteLine 和FileGrep函數(shù)來(lái)查找和刪除一個(gè)文件中的文本行。 參數(shù): szFileName 指定文件的全限定名,它位于系統(tǒng)變量SRCDIR指定的目錄中。如果該文件存在,由nStartLineNum 和nEndLineNum指定的行將從該文件中刪除。 nStartLineNum 指定要從文件中刪除的第一行的行號(hào)。注意行從0開(kāi)始編號(hào)。 nEndLineNum 指定要從文件中刪除的最后一行的行號(hào)。注意行從0開(kāi)始編號(hào)。為了從nStartLineNum指定的行開(kāi)始刪除到文件結(jié)尾,給該參數(shù)傳遞預(yù)定義常量DELETE_EOF。 返回值: 0:FileDeleteLine從該文件成功刪除指定行。 < 0:FileDeleteLine因?yàn)橄铝星闆r之一而失?。?br> FILE_NOT_FOUND (-2):InstallShield未能找到szFileName指定的文件。 FILE_RD_ONLY (-5):文件是寫(xiě)保護(hù)的。 LINE_NUMBER (-7):一個(gè)你所指定的行號(hào)小于0,或者文件中沒(méi)有該行號(hào)。 OUT_OF_DISK_SPACE (-6):沒(méi)有足夠的磁盤(pán)驅(qū)動(dòng)器空間來(lái)完成指定操作。 OTHER_FAILURE (-1):發(fā)生其它一些不確定錯(cuò)誤。 9.12 語(yǔ)法:FileGrep (szFileName, szSearchStr, svReturnLine, nvLineNumber, nFlag); 說(shuō)明:FileGrep函數(shù)在一個(gè)文本文件中查找一個(gè)指定字符串。如果字符串被找到,包含該字符串的行被返回到參數(shù)svReturnLine,該行的行號(hào)被返回到參數(shù)nvLineNumber。查找不區(qū)分大小寫(xiě)。FileGrep作用于面向行的文本文件;它不作用于二進(jìn)制文件。 參數(shù): szFileName 指定要查找的文件的全限定名。 szSearchStr 指定查找字符串。 svReturnLine 返回szSearchStr被找到的行。 nvLineNumber 返回szSearchStr被找到的行的行號(hào)。行以0開(kāi)始編號(hào)。 nFlag 指定查找選項(xiàng)。在該參數(shù)位置傳遞下列預(yù)定義常量之一: CONTINUE:檢索查找字符串的下一個(gè)出現(xiàn)(如果有)。 RESTART:檢索查找字符串的第一次出現(xiàn)。 返回值: 0:FileGrep找到指定字符串。 < 0:FileGrep因下列情況之一而失?。?br> END_OF_FILE (-4):沒(méi)有找到查找字符串而已到文件尾。 FILE_NOT_FOUND (-2):InstallShield未能找到szFileName指定的文件。 FILE_LINE_LENGTH (-3):行超過(guò)允許的最大長(zhǎng)度。 OTHER_FAILURE (-1):發(fā)生一個(gè)不確定錯(cuò)誤。 9.13 語(yǔ)法:FileInsertLine (szFileName, szInsertLine, nLineNumber, nInsertFlag); 說(shuō)明:FileInsertLine函數(shù)通過(guò)指定行號(hào)來(lái)插入或置換一行。你可以將FileInsertLine 和 FileGrep一起使用,F(xiàn)ileGrep找到行并返回它們的行號(hào)。 FileInsertLine工作于面向行的且每行不超過(guò)1,024字節(jié)的文本文件。InstallShield假定任何長(zhǎng)于最大允許長(zhǎng)度的行表明了這是一個(gè)二進(jìn)制文件而導(dǎo)致FileInsertLine失敗。 由szFileName指定的文件必須尚未通過(guò)調(diào)用OpenFile被打開(kāi)。如果szFileName已經(jīng)被打開(kāi),在調(diào)用FileInsertLine前調(diào)用CloseFile。 參數(shù): szFileName 指定文件的全限定名,它位于系統(tǒng)變量SRCDIR指定的目錄中。如果該文件存在,則將szInsertLine的值插入其中。 szInsertLine 指定插入到文件中的字符串。 nLineNumber 指定你要將szInsertLine插入到的行號(hào)。第一行行號(hào)是0。 nInsertFlag 指定一個(gè)插入位置選項(xiàng)。在該參數(shù)位置傳遞下列預(yù)定義常量之一: BEFORE:在nLineNumber前插入。 AFTER:在nLineNumber后插入。 APPEND;將szInsertLine添加到nLineNumber指定的行。 REPLACE:用szInsertLine 置換nLineNumber指定的行。 返回值: 0:FileInsertLine成功插入行到指定文件。 FILE_LINE_LENGTH (-3):表明行長(zhǎng)超過(guò)文本文件允許的最大長(zhǎng)度。 FILE_NOT_FOUND (-2):FileInsertLine未能找到szFileName指定的文件。 FILE_RD_ONLY (-5):表明文件寫(xiě)保護(hù)。 LINE_NUMBER (-7):表明你指定的行號(hào)之一小于0,或在文件中不存在該行號(hào)。 OUT_OF_DISK_SPACE (-6):表明沒(méi)有足夠的磁盤(pán)驅(qū)動(dòng)器空間來(lái)完成指定操作。 OTHER_FAILURE (-1):發(fā)生一個(gè)不確定錯(cuò)誤。 |
|
|
來(lái)自: icecity1306 > 《安裝技術(shù)》