<
%
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
%
>