<
%
class cls_fso
public objfso
private sub class_initialize()
set objfso = server.createobject( " scripting.filesystemobject " )
end sub
private sub class_terminate()
set objfso = nothing
end sub
' 文件是否存在
public function reportfilestatus(filename)
dim msg
msg = - 1
if (objfso.fileexists(filename)) then
msg = 1
else
msg = - 1
end if
reportfilestatus = msg
end function
' =======文件操作========
' 取文件大小
public function getfilesize(filename)
dim f
if reportfilestatus(filename) = 1 then
set f = objfso.getfile(filename)
getfilesize = f.size
else
getfilesize = - 1
end if
end function
' 刪除文件
public function deleteafile(filespec)
if reportfilestatus(filespec) = 1 then
objfso.deletefile(filespec)
deleteafile = 1
else
deleteafile = - 1
end if
end function
' 顯示文件列表
public function showfilelist(folderspec)
dim f, f1, fc, s
if reportfolderstatus(folderspec) = 1 then
set f = objfso.getfolder(folderspec)
set fc = f.files
for each f1 in fc
s = s & f1.name
s = s & " | "
next
showfilelist = s
else
showfilelist = - 1
end if
end function
' 復制文件
public function copyafile(sourcefile, destinationfile)
dim myfile
if reportfilestatus(sourcefile) = 1 then
set myfile = objfso.getfile(sourcefile)
myfile.copy (destinationfile)
copyafile = 1
else
copyafile = - 1
end if
end function
' 移動文件
public function moveafile(sourcefile,destinationfile)
if reportfilestatus(sourcefile) = 1 and reportfilestatus(destinationfileorpath) = - 1 then
objfso.movefile sourcefile,destinationfileorpath
moveafile = 1
else
moveafile = - 1
end if
end function
' 文件創建日期
public function showdatecreated(filespec)
dim f
if reportfilestatus(filespec) = 1 then
set f = objfso.getfile(filespec)
showdatecreated = f.datecreated
else
showdatecreated = - 1
end if
end function
' 文件屬性
public function getattributes(filename)
dim f
dim strfileattributes
if reportfilestatus(filename) = 1 then
set f = objfso.getfile(filename)
select case f.attributes
case 0 strfileattributes = " 普通文件,沒有設置任何屬性. "
case 1 strfileattributes = " 只讀文件,可讀寫. "
case 2 strfileattributes = " 隱藏文件,可讀寫. "
case 4 strfileattributes = " 系統文件,可讀寫. "
case 16 strfileattributes = " 文件夾或目錄,只讀. "
case 32 strfileattributes = " 上次備份後已更改的文件,可讀寫. "
case 1024 strfileattributes = " 鏈接或是快捷方式,只讀. "
case 2048 strfileattributes = " 壓縮文件,只讀. "
end select
getattributes = strfileattributes
else
getattributes = - 1
end if
end function
' 最後一次訪問,最後一次修改時間
public function showfileaccessinfo(filename,infotype)
' //功能:顯示文件創建信息
' //形參:文件名,信息類別.
' // 1 -----創建時間
' // 2 -----上次訪問時間
' // 3 -----上次修改時間
' // 4 -----文件路徑
' // 5 -----文件名稱
' // 6 -----文件類型
' // 7 -----文件大小
' // 8 -----父目錄
' // 9 -----根目錄
dim f, s
if reportfilestatus(filename) = 1 then
set f = objfso.getfile(filename)
select case infotype
case 1 s = f.datecreated
case 2 s = f.datelastaccessed
case 3 s = f.datelastmodified
case 4 s = f.path
case 5 s = f.name
case 6 s = f.type
case 7 s = f.size
case 8 s = f.parentfolder
case 9 s = f.rootfolder
end select
showfileaccessinfo = s
else
showfileaccessinfo = - 1
end if
end function
' 寫文件
public function writetxtfile(filename,textstr,writeorappendtype)
const forreading = 1 , forwriting = 2 , forappending = 8
dim f, m
select case writeorappendtype
case 1 : ' 文件進行寫操作
set f = objfso.opentextfile(filename, forwriting, true )
f.write textstr
f.close
if reportfilestatus(filename) = 1 then
writetxtfile = 1
else
writetxtfile = - 1
end if
case 2 : ' 文件尾進行寫操作
if reportfilestatus(filename) = 1 then
set f = objfso.opentextfile(filename, forappending)
f.write textstr
f.close
writetxtfile = 1
else
writetxtfile = - 1
end if
end select
end function
' 讀文本文件
public function readtxtfile(filename)
const forreading = 1 , forwriting = 2
dim f, m
if reportfilestatus(filename) = 1 then
set f = objfso.opentextfile(filename, forreading)
m = f.readline
readtxtfile = m
f.close
else
readtxtfile = - 1
end if
end function
' =======目錄操作========
' 目錄是否存在
public function reportfolderstatus(fldr)
dim msg
msg = - 1
if (objfso.folderexists(fldr)) then
msg = 1
else
msg = - 1
end if
reportfolderstatus = msg
end function
' 取目錄大小
public function getfoldersize(foldername)
dim f
if reportfolderstatus(foldername) = 1 then
set f = objfso.getfolder(foldername)
getfoldersize = f.size
else
getfoldersize = - 1
end if
end function
' 創建新的目錄
public function createfolderdemo(foldername)
dim f
if reportfolderstatus(folderspec) = 1 then
createfolderdemo = - 1
else
set f = objfso.createfolder(foldername)
createfolderdemo = 1
end if
end function
' 刪除目錄
public function deleteafolder(folderspec)
response.write folderspec
if reportfolderstatus(folderspec) = 1 then
objfso.deletefolder (folderspec)
deleteafolder = 1
else
deleteafolder = - 1
end if
end function
' 顯示目錄列表
public function showfolderlist(folderspec)
dim f, f1, fc, s
if reportfolderstatus(folderspec) = 1 then
set f = objfso.getfolder(folderspec)
set fc = f.subfolders
for each f1 in fc
s = s & f1.name
s = s & " | "
next
showfolderlist = s
else
showfolderlist = - 1
end if
end function
' 目錄復制
public function copyafolder(sourcefolder,destinationfolder)
objfso.copyfolder sourcefolder,destinationfolder
copyafolder = 1
copyafolder = - 1
end function
' 目錄進行移動
public function moveafolder(sourcepath,destinationpath)
if reportfolderstatus(sourcepath) = 1 and reportfolderstatus(destinationpath) = 0 then
objfso.movefolder sourcepath, destinationpath
moveafolder = 1
else
moveafolder = - 1
end if
end function
' 目錄創建信息
public function showfolderaccessinfo(foldername,infotype)
' //功能:顯示目妹創建時信息
' //形參:目錄名,信息類別
' // 1 -----創建時間
' // 2 -----上次訪問時間
' // 3 -----上次修改時間
' // 4 -----目錄路徑
' // 5 -----目錄名稱
' // 6 -----目錄類型
' // 7 -----目錄大小
' // 8 -----父目錄
' // 9 -----根目錄
dim f, s
if reportfolderstatus(foldername) = 1 then
set f = objfso.getfolder(foldername)
select case infotype
case 1 s = f.datecreated
case 2 s = f.datelastaccessed
case 3 s = f.datelastmodified
case 4 s = f.path
case 5 s = f.name
case 6 s = f.type
case 7 s = f.size
case 8 s = f.parentfolder
case 9 s = f.rootfolder
end select
showfolderaccessinfo = s
else
showfolderaccessinfo = - 1
end if
end function
' 遍歷目錄
public function displayleveldepth(pathspec)
dim f, n ,path
set f = objfso.getfolder(pathspec)
if f.isrootfolder then
displayleveldepth = " 指寫的文件夾是根文件夾. " & rootfolder
else
do until f.isrootfolder
path = path & f.name & " <br> "
set f = f.parentfolder
n = n + 1
loop
displayleveldepth = " 指寫的文件夾是嵌套級為: " & n & " 的文件夾.<br> " & path
end if
end function
' ========磁盤操作========
' 驅動器是否存在
public function reportdrivestatus(drv)
dim msg
msg = - 1
if objfso.driveexists(drv) then
msg = 1
else
msg = - 1
end if
reportdrivestatus = msg
end function
' 可用的返回類型包括fat,ntfs,cdfs.
public function showfilesystemtype(drvspec)
dim d
if reportdrivestatus(drvspec) = 1 then
set d = objfso.getdrive(drvspec)
showfilesystemtype = d.filesystem
else
showfilesystemtype = - 1
end if
end function
end class
% >
class cls_fso
public objfso
private sub class_initialize()
set objfso = server.createobject( " scripting.filesystemobject " )
end sub
private sub class_terminate()
set objfso = nothing
end sub
' 文件是否存在
public function reportfilestatus(filename)
dim msg
msg = - 1
if (objfso.fileexists(filename)) then
msg = 1
else
msg = - 1
end if
reportfilestatus = msg
end function
' =======文件操作========
' 取文件大小
public function getfilesize(filename)
dim f
if reportfilestatus(filename) = 1 then
set f = objfso.getfile(filename)
getfilesize = f.size
else
getfilesize = - 1
end if
end function
' 刪除文件
public function deleteafile(filespec)
if reportfilestatus(filespec) = 1 then
objfso.deletefile(filespec)
deleteafile = 1
else
deleteafile = - 1
end if
end function
' 顯示文件列表
public function showfilelist(folderspec)
dim f, f1, fc, s
if reportfolderstatus(folderspec) = 1 then
set f = objfso.getfolder(folderspec)
set fc = f.files
for each f1 in fc
s = s & f1.name
s = s & " | "
next
showfilelist = s
else
showfilelist = - 1
end if
end function
' 復制文件
public function copyafile(sourcefile, destinationfile)
dim myfile
if reportfilestatus(sourcefile) = 1 then
set myfile = objfso.getfile(sourcefile)
myfile.copy (destinationfile)
copyafile = 1
else
copyafile = - 1
end if
end function
' 移動文件
public function moveafile(sourcefile,destinationfile)
if reportfilestatus(sourcefile) = 1 and reportfilestatus(destinationfileorpath) = - 1 then
objfso.movefile sourcefile,destinationfileorpath
moveafile = 1
else
moveafile = - 1
end if
end function
' 文件創建日期
public function showdatecreated(filespec)
dim f
if reportfilestatus(filespec) = 1 then
set f = objfso.getfile(filespec)
showdatecreated = f.datecreated
else
showdatecreated = - 1
end if
end function
' 文件屬性
public function getattributes(filename)
dim f
dim strfileattributes
if reportfilestatus(filename) = 1 then
set f = objfso.getfile(filename)
select case f.attributes
case 0 strfileattributes = " 普通文件,沒有設置任何屬性. "
case 1 strfileattributes = " 只讀文件,可讀寫. "
case 2 strfileattributes = " 隱藏文件,可讀寫. "
case 4 strfileattributes = " 系統文件,可讀寫. "
case 16 strfileattributes = " 文件夾或目錄,只讀. "
case 32 strfileattributes = " 上次備份後已更改的文件,可讀寫. "
case 1024 strfileattributes = " 鏈接或是快捷方式,只讀. "
case 2048 strfileattributes = " 壓縮文件,只讀. "
end select
getattributes = strfileattributes
else
getattributes = - 1
end if
end function
' 最後一次訪問,最後一次修改時間
public function showfileaccessinfo(filename,infotype)
' //功能:顯示文件創建信息
' //形參:文件名,信息類別.
' // 1 -----創建時間
' // 2 -----上次訪問時間
' // 3 -----上次修改時間
' // 4 -----文件路徑
' // 5 -----文件名稱
' // 6 -----文件類型
' // 7 -----文件大小
' // 8 -----父目錄
' // 9 -----根目錄
dim f, s
if reportfilestatus(filename) = 1 then
set f = objfso.getfile(filename)
select case infotype
case 1 s = f.datecreated
case 2 s = f.datelastaccessed
case 3 s = f.datelastmodified
case 4 s = f.path
case 5 s = f.name
case 6 s = f.type
case 7 s = f.size
case 8 s = f.parentfolder
case 9 s = f.rootfolder
end select
showfileaccessinfo = s
else
showfileaccessinfo = - 1
end if
end function
' 寫文件
public function writetxtfile(filename,textstr,writeorappendtype)
const forreading = 1 , forwriting = 2 , forappending = 8
dim f, m
select case writeorappendtype
case 1 : ' 文件進行寫操作
set f = objfso.opentextfile(filename, forwriting, true )
f.write textstr
f.close
if reportfilestatus(filename) = 1 then
writetxtfile = 1
else
writetxtfile = - 1
end if
case 2 : ' 文件尾進行寫操作
if reportfilestatus(filename) = 1 then
set f = objfso.opentextfile(filename, forappending)
f.write textstr
f.close
writetxtfile = 1
else
writetxtfile = - 1
end if
end select
end function
' 讀文本文件
public function readtxtfile(filename)
const forreading = 1 , forwriting = 2
dim f, m
if reportfilestatus(filename) = 1 then
set f = objfso.opentextfile(filename, forreading)
m = f.readline
readtxtfile = m
f.close
else
readtxtfile = - 1
end if
end function
' =======目錄操作========
' 目錄是否存在
public function reportfolderstatus(fldr)
dim msg
msg = - 1
if (objfso.folderexists(fldr)) then
msg = 1
else
msg = - 1
end if
reportfolderstatus = msg
end function
' 取目錄大小
public function getfoldersize(foldername)
dim f
if reportfolderstatus(foldername) = 1 then
set f = objfso.getfolder(foldername)
getfoldersize = f.size
else
getfoldersize = - 1
end if
end function
' 創建新的目錄
public function createfolderdemo(foldername)
dim f
if reportfolderstatus(folderspec) = 1 then
createfolderdemo = - 1
else
set f = objfso.createfolder(foldername)
createfolderdemo = 1
end if
end function
' 刪除目錄
public function deleteafolder(folderspec)
response.write folderspec
if reportfolderstatus(folderspec) = 1 then
objfso.deletefolder (folderspec)
deleteafolder = 1
else
deleteafolder = - 1
end if
end function
' 顯示目錄列表
public function showfolderlist(folderspec)
dim f, f1, fc, s
if reportfolderstatus(folderspec) = 1 then
set f = objfso.getfolder(folderspec)
set fc = f.subfolders
for each f1 in fc
s = s & f1.name
s = s & " | "
next
showfolderlist = s
else
showfolderlist = - 1
end if
end function
' 目錄復制
public function copyafolder(sourcefolder,destinationfolder)
objfso.copyfolder sourcefolder,destinationfolder
copyafolder = 1
copyafolder = - 1
end function
' 目錄進行移動
public function moveafolder(sourcepath,destinationpath)
if reportfolderstatus(sourcepath) = 1 and reportfolderstatus(destinationpath) = 0 then
objfso.movefolder sourcepath, destinationpath
moveafolder = 1
else
moveafolder = - 1
end if
end function
' 目錄創建信息
public function showfolderaccessinfo(foldername,infotype)
' //功能:顯示目妹創建時信息
' //形參:目錄名,信息類別
' // 1 -----創建時間
' // 2 -----上次訪問時間
' // 3 -----上次修改時間
' // 4 -----目錄路徑
' // 5 -----目錄名稱
' // 6 -----目錄類型
' // 7 -----目錄大小
' // 8 -----父目錄
' // 9 -----根目錄
dim f, s
if reportfolderstatus(foldername) = 1 then
set f = objfso.getfolder(foldername)
select case infotype
case 1 s = f.datecreated
case 2 s = f.datelastaccessed
case 3 s = f.datelastmodified
case 4 s = f.path
case 5 s = f.name
case 6 s = f.type
case 7 s = f.size
case 8 s = f.parentfolder
case 9 s = f.rootfolder
end select
showfolderaccessinfo = s
else
showfolderaccessinfo = - 1
end if
end function
' 遍歷目錄
public function displayleveldepth(pathspec)
dim f, n ,path
set f = objfso.getfolder(pathspec)
if f.isrootfolder then
displayleveldepth = " 指寫的文件夾是根文件夾. " & rootfolder
else
do until f.isrootfolder
path = path & f.name & " <br> "
set f = f.parentfolder
n = n + 1
loop
displayleveldepth = " 指寫的文件夾是嵌套級為: " & n & " 的文件夾.<br> " & path
end if
end function
' ========磁盤操作========
' 驅動器是否存在
public function reportdrivestatus(drv)
dim msg
msg = - 1
if objfso.driveexists(drv) then
msg = 1
else
msg = - 1
end if
reportdrivestatus = msg
end function
' 可用的返回類型包括fat,ntfs,cdfs.
public function showfilesystemtype(drvspec)
dim d
if reportdrivestatus(drvspec) = 1 then
set d = objfso.getdrive(drvspec)
showfilesystemtype = d.filesystem
else
showfilesystemtype = - 1
end if
end function
end class
% >