<%
'*********************************************************
'文件名称: Ex_FsoCls.asp
'功能描述: 易心博客文件操作类
'程序制作：易心
'官方网站: http://www.ex123.net
'论坛支持：http://bbs.ex123.net
'程序演示：http://exblog.ex123.net
'Copyright (C) 2007 ex123.net All rights reserved.
'LastUpdate:    2007-4-21
'*********************************************************
Class Ex_FsoCls
private Fso
Private Path
private sub class_initialize
	set fso=server.CreateObject("scripting.filesystemobject")
end sub
private sub class_terminate
	set fso=nothing
end sub
'*************
'功能：删除文件  
'参数：filePath---文件地址
'*************
public sub DelFile(filePath)
	if CheckExist(filepath,"file") then
		fso.deletefile(path)
	end if
end Sub
'*************
'功能：删除文件夹 
'参数：FolderPath---文件夹地址
'*************
public sub DelFolder(FolderPath)
	if CheckExist(FolderPath,"folder") then
		fso.deleteFolder(path)
	end if
end Sub
'*************
'功能：copy文件 
'参数：fpath--源文件地址 dpath--要拷贝到的地址
'*************
Public Sub CopyOneFile(fpath,dpath)
	Dim Temp,Arr
	If CheckExist(fpath,"file") And Trim(dpath)<>"" Then 
		Arr=Split(dpath,"/")
		Temp=Replace(dpath,Arr(UBound(Arr)),"")
		If CheckExist(Temp,"folder") Then 
			Fso.CopyFile Server.Mappath(fpath),Server.Mappath(dpath)
		Else
			CreateRoute Temp
			Fso.CopyFile Server.Mappath(fpath),Server.Mappath(dpath)
		End If 
	End If 
End Sub 
'***************
'功能判断文件是否存在 存在返回 true 否则返回 false
'参数 filepath---文件相对地址 objmode---判断类型 参数值 file-文件 folder--文件夹
'***************
Public Function CheckExist(filepath,objmode)
	If Trim(FilePath)="" Then 
		Exit Function 
	End If 
	path=server.MapPath(filePath)
	If objmode="file" then
		if fso.fileExists(path) then
			CheckExist=CBool("true")
		Else
			CheckExist=CBool("false")
		end If
	Else
		if fso.folderExists(path) then
			CheckExist=CBool("true")
		Else
			CheckExist=CBool("false")
		end If
	End if
End Function
'************************
'功能：如果路径不存在就生成路径
'参数:fileurl---相对路径
'************************
Public Sub CreateRoute(fileurl)
	On Error Resume Next 
	Dim ArrFile,strFile,i
	path=Server.Mappath(fileurl)
	path=Replace(path,"/","\")
	ArrFile=Split(path,"\")
	strFile=ArrFile(0)
	For I=1 To UBound(ArrFile)
		strFile=strFile&"\"&ArrFile(i)
		If Fso.FolderExists(strFile)=False Then
			Fso.CreateFolder(strFile)
			If Err.number<>0 And InStr(Err.description,"已存在")=0 Then 
				Response.Write "<script>文件夹生成时错误\n易心博客程序是以易心空间为基础而开发，建议在易心空间上运行以使用全部功能.</script>"
				Exit Sub 
			End If 
		End If 
	Next 
End Sub 
'************************
'作用:生成静态页面
'fileurl----静态页面路径 content---文件内容
'************************
Public sub CreateFile(fileurl,content)
	On Error Resume Next
	Dim Stream
	path=server.mappath(fileurl)
	Set Stream = FSO.CreateTextFile(Path,True)
	Stream.Write Content
	Stream.Close
	'增加对特殊字符的保护
	If Err.Number<>0 Then
		Set Stream = server.CreateObject("ADODB.Stream")
		With Stream
			.Type = 2
			.Mode = 3
			.open
			.Charset = "gb2312"
			.Position = Stream.size
			.WriteText = Content
			.SaveToFile Path, 2
			.Close
		End With
		Err.Clear
	End If
	Set Stream = Nothing
end Sub
'********************
'作用:读取文件内容
'参数：filepath---要读取的文件地址
'*********************
Public Function ReadFile(filepath)
	Dim Text
	If CheckExist(filepath,"file") Then
		Set Text=Fso.OpenTextFile(server.mappath(filepath),1,false)
		ReadFile=Text.ReadAll
	Else
		ReadFile="文件不存在"
	End if
End Function
'********************
'作用:获得文件夹中子文件夹的名字
'参数：filepath---要读取的文件地址
'*********************
Public Function GetSubFolders (filepath) 
	If CheckExist(filepath,"folder") Then
		Dim myfolder,item,Str
		Set  myfolder=Fso.GetFolder(Path)
		For each item in myfolder.SubFolders
			str=str&item.name&"|"
		Next
		If Trim(str)="" Then 
			GetSubFolders=""
		Else 
			GetSubFolders=Mid(Str,1,Len(str)-1)
		End If 
	Else
		GetSubFolders="文件夹不存在"
	End If 
End Function 
'********************
'作用:获得文件夹中子文件的名字
'参数：filepath---要读取的文件地址
'*********************
Public Function GetSubFiles (filepath) 
	If CheckExist(filepath,"folder") Then
		Dim myfolder,item,Str
		Set  myfolder=Fso.GetFolder(Path)
		For each item in myfolder.files
			str=str&item.name&"|"
		Next
		If Str="" Then 
			GetSubFiles=""
		Else 
			GetSubFiles=Mid(Str,1,Len(str)-1)
		End If 
	Else
		GetSubFiles="文件夹不存在"
	End If 
End Function 
end class
%>