当前位置:首页 >> 网络编程

FSO一些代码

使用FSO修改文件特定内容的函数 
function FSOchange(filename,Target,String) 
Dim objFSO,objCountFile,FiletempData 
Set objFSO = Server.CreateObject("Scripting.FileSystemObject") 
Set objCountFile = objFSO.OpenTextFile(Server.MapPath(filename),1,True) 
FiletempData = objCountFile.ReadAll 
objCountFile.Close 
FiletempData=Replace(FiletempData,Target,String) 
Set objCountFile=objFSO.CreateTextFile(Server.MapPath(filename),True) 
objCountFile.Write FiletempData 
objCountFile.Close 
Set objCountFile=Nothing 
Set objFSO = Nothing 
End Function 


使用FSO读取文件内容的函数 
function FSOFileRead(filename) 
Dim objFSO,objCountFile,FiletempData 
Set objFSO = Server.CreateObject("Scripting.FileSystemObject") 
Set objCountFile = objFSO.OpenTextFile(Server.MapPath(filename),1,True) 
FSOFileRead = objCountFile.ReadAll 
objCountFile.Close 
Set objCountFile=Nothing 
Set objFSO = Nothing 
End Function 


使用FSO读取文件某一行的函数 
function FSOlinedit(filename,lineNum) 
if linenum < 1 then exit function 
dim fso,f,temparray,tempcnt 
set fso = server.CreateObject("scripting.filesystemobject") 
if not fso.fileExists(server.mappath(filename)) then exit function 
set f = fso.opentextfile(server.mappath(filename),1) 
if not f.AtEndofStream then 
tempcnt = f.readall 
f.close 
set f = nothing 
temparray = split(tempcnt,chr(13)&chr(10)) 
if lineNum>ubound(temparray)+1 then 
exit function 
else 
FSOlinedit = temparray(lineNum-1) 
end if 
end if 
end function 


使用FSO写文件某一行的函数 
function FSOlinewrite(filename,lineNum,Linecontent) 
if linenum < 1 then exit function 
dim fso,f,temparray,tempCnt 
set fso = server.CreateObject("scripting.filesystemobject") 
if not fso.fileExists(server.mappath(filename)) then exit function 
set f = fso.opentextfile(server.mappath(filename),1) 
if not f.AtEndofStream then 
tempcnt = f.readall 
f.close 
temparray = split(tempcnt,chr(13)&chr(10)) 
if lineNum>ubound(temparray)+1 then 
exit function 
else 
temparray(lineNum-1) = lineContent 
end if 
tempcnt = join(temparray,chr(13)&chr(10)) 
set f = fso.createtextfile(server.mappath(filename),true) 
f.write tempcnt 
end if 
f.close 
set f = nothing 
end function 


使用FSO添加文件新行的函数 
function FSOappline(filename,Linecontent) 
dim fso,f 
set fso = server.CreateObject("scripting.filesystemobject") 
if not fso.fileExists(server.mappath(filename)) then exit function 
set f = fso.opentextfile(server.mappath(filename),8,1) 
f.write chr(13)&chr(10)&Linecontent 
f.close 
set f = nothing 
end function 


读文件最后一行的函数 
function FSOlastline(filename) 
dim fso,f,temparray,tempcnt 
set fso = server.CreateObject("scripting.filesystemobject") 
if not fso.fileExists(server.mappath(filename)) then exit function 
set f = fso.opentextfile(server.mappath(filename),1) 
if not f.AtEndofStream then 
tempcnt = f.readall 
f.close 
set f = nothing 
temparray = split(tempcnt,chr(13)&chr(10)) 
FSOlastline = temparray(ubound(temparray)) 
end if 
end function 

FSO替换指定文件的字符
程序代码:

'FSO替换指定文件的字符
Function FSOLineEdit(filename,Target,String)
Dim objFSO,objCountFile,FiletempData
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
Set objCountFile = objFSO.OpenTextFile(Server.MapPath(filename),1,True)
FiletempData = objCountFile.ReadAll
objCountFile.Close
FiletempData = Replace(FiletempData,Target,String)
Set objCountFile = objFSO.CreateTextFile(Server.MapPath(filename),True)
objCountFile.Write FiletempData
objCountFile.Close
Set objCountFile = Nothing
Set objFSO = Nothing
End Function
'Response.Write FSOLineEdit("test.txt","世界","明天是一个好天去")


删除文件
程序代码:

'删除文件
Function DelFile(Filename)
If Filename <> "" Then
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
If FSO.FileExists(Filename) Then
FSO.DeleteFile Filename
End If
Set FSO = Nothing
End If
End Function


判断文件是否存在
程序代码:

'判断文件是否存在
Function ReportFileStatus(filespec)
Dim FSO,msg
Set FSO = CreateObject("Scripting.FileSystemObject")
If (FSO.FileExists(filespec)) Then
msg = filespec & " exists."
Else
msg = filespec & " doesn't exist."
End If
ReportFileStatus = msg
End Function


使用FSO修改文件特定内容的函数
程序代码:

'使用FSO修改文件特定内容的函数
Function FSOchange(filename,Target,String)
Dim objFSO,objCountFile,FiletempData
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
Set objCountFile = objFSO.OpenTextFile(Server.MapPath(filename),1,True)
FiletempData = objCountFile.ReadAll
objCountFile.Close
FiletempData = Replace(FiletempData,Target,String)
Set objCountFile = objFSO.CreateTextFile(Server.MapPath(filename),True)
objCountFile.Write FiletempData 
objCountFile.Close
Set objCountFile = Nothing
Set objFSO = Nothing
End Function

使用FSO写文件某一行的函数
程序代码:

'使用FSO写文件某一行的函数
Function FSOlinewrite(filename,lineNum,Linecontent)
If linenum < 1 Then Exit Function
Dim FSO,f,temparray,tempCnt
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
If Not FSO.FileExists(Server.MapPath(filename)) Then Exit Function
Set f = FSO.OpenTextFile(Server.MapPath(filename),1)
If Not f.AtEndofStream Then
tempcnt = f.ReadAll
f.Close
temparray = Split(tempcnt,Chr(13)&Chr(10))
If lineNum>UBound(temparray)+1 Then
Exit Function
Else
temparray(lineNum-1) = lineContent
End If
tempcnt = jo& #105;n(temparray,Chr(13)&Chr(10))
Set f = FSO.cr& #101;atetextfile(Server.MapPath(filename),true)
f.Write tempcnt
End If
f.Close
Set f = Nothing
End Function


建立目录的程序,如果有多级目录,则一级一级的创建
程序代码: 
'建立目录的程序,如果有多级目录,则一级一级的创建
Function CreateDIR(ByVal LocalPath)
On Error Resume Next
LocalPath = Replace(LocalPath,"\","/")
Set FileObject = Server.CreateObject("Scripting.FileSystemObject")
patharr = Split(LocalPath,"/")
path_level = UBound(patharr)
For i = 0 to path_level
If i=0 Then pathtmp=patharr(0) & "/" Else pathtmp = pathtmp & patharr(i) & "/"
cpath = Left(pathtmp,Len(pathtmp)-1)
If Not FileObject.FolderExists(cpath) Then FileObject.CreateFolder cpath
Next
Set FileObject = Nothing
If Err.Number <> 0 Then
CreateDIR = False
Err.Clear
Else
CreateDIR = True
End If
End Function


下面列举一下这些不常用但是却非常酷的功能: 
很少被了解的FSO功能 
GetSpecialFolder Method 返回特定的Windows文件夹的路径: Windows安装目录;Windows系统目录;Windows临时目录 FSO.GetSpecialFolder([0, 1, or 2])  
GetTempName Method 返回一个随机产生的文件或者目录名字,用于需要存储临时数据时 
GetAbsolutePathName Method 返回文件夹的绝对路径(类似于Server.MapPath)。 
比如,FSO.GetAbsolutePathName("region") 将返回类似于下面的结果:"c:mydocsmyfolder egion" 
GetExtensionName Method 返回路径中最后部分的扩展名 
(比如:FSO.GetExtensionName("c:docs est.txt") 将返回txt) 
GetBaseName and GetParentFolder Methods 返回路径中最后部分的父文件夹 
(比如:FSO.GetParentFolder ("c:docsmydocs") 将返回'docs') 
Drives Property 返回所有本地可用驱动器的集合,用于建立资源浏览器样的用户接口。 

使用上面的功能时,最好建立好出错处理的代码。因为如果需要的参数不存在,将会产生麻烦的信息。