- 深入解析ASP核心技術
- 王洪影
- 542字
- 2019-01-03 18:15:36
1.7.2 文件操作
表1-9列出了文件常用操作方法。
表1-9 文件常用操作方法

1. 創建文本文件
創建文本文件,可以使用FSO對象或Folder對象的CreateTextFile方法,格式如下:
fso.CreateTextFile(文件名,是否覆蓋同名文件,是否使用Unicode編碼)
后兩個參數可以省略,它們默認都為False。該方法返回的是一個TextStream對象,可以通過它對文本文件進行操作,具體使用方法請參見1.7.3節。
下例將在當前目錄下創建一個名為FileCreateTest.txt的文件。
FileCreate.asp
<%@codepage=936%> <% Response.Charset = "GBK" '當前目錄下的FileCreateTest.txt filePath = Server.MapPath(".") & "\FileCreateTest.txt" Set fso = CreateObject("Scripting.FileSystemObject") '創建文本文件(覆蓋同名文件,使用Unicode編碼) Set txtFile = fso.CreateTextFile(filePath, True, True) '寫入數據,并關閉 txtFile.WriteLine("Hello World.") txtFile.Close Set fso = Nothing %>
如果不使用Unicode編碼,則將使用系統默認為編碼。如果是英文系統,使用WriteLine寫入中文的話,程序將報錯。
另外,FSO不支持二進制文件的讀寫。
2. 復制文件、移動文件和刪除文件
文件的復制、移動和刪除與文件夾的操作是極其類似的,只是方法名和路徑寫法不同,所以不贅述,直接舉例說明。
FileCopyMoveDelete.asp
<%@codepage=936%> <% Response.Charset = "GBK" '當前目錄下的FileTest.txt filePathA = Server.MapPath(".") & "\FileTest.txt" filePathB = Server.MapPath(".") & "\FileTest2.txt" filePathC = Server.MapPath(".") & "\FileTest3.txt" Set fso = CreateObject("Scripting.FileSystemObject") '將FileTest.txt復制為FileTest2.txt fso.CopyFile filePathA, filePathB, True '覆蓋同名文件 '將FileTest2.txt改名為FileTest3.txt fso.MoveFile filePathB, filePathC '刪除FileTest3.txt fso.DeleteFile filePathC, True '強制刪除只讀文件 '下面通過File對象來操作 Set fileA = fso.GetFile(filePathA) fileA.Copy filePathB, True '復制 Set fileB = fso.GetFile(filePathB) fileB.Move filePathC '移動 Set fileC = fso.GetFile(filePathC) fileC.Delete True '刪除 Set fso = Nothing %>
3. 打開文本文件
打開已經存在的文本文件,可以使用FSO對象的 OpenTextFile方法或File對象的OpenAsTextStream方法,格式如下:
fso.OpenTextFile(文件路徑,讀寫模式,是否創建新文件,使用的編碼) file.OpenAsTextStream(讀寫模式,是否使用Unicode編碼)
參數“讀寫模式”的可選值如表1-10所示。
表1-10 “讀寫模式”的可選值

參數“使用的編碼”的可選值如表1-11所示。
表1-11 “使用的編碼”的可選值

參數“是否創建新文件”的默認值為False,如果為True,則文件不存在時會自動創建。
OpenTextFile方法和OpenAsTextStream方法返回的也是TextStream對象,可以通過它進行后續操作,具體使用方法請參見1.7.3節。
下例將創建一個文本文件,然后打開該文件,讀取一行數據。
FileOpenTextFile.asp
<%@codepage=936%> <% Response.Charset = "GBK" '當前目錄下的FileOpenTest.txt filePath = Server.MapPath(".") & "\FileOpenTest.txt" Set fso = CreateObject("Scripting.FileSystemObject") '打開文本文件(只讀方式,不創建新文件,使用Unicode編碼) Set txtFile = fso.OpenTextFile(filePath,1, False, -1) '讀取一行數據,并關閉 Response.Write txtFile.ReadLine() txtFile.Close Set fso = Nothing %>