文件、目录,文本文件等多种操作类

  一个使用fso的class,前面的文章也有提到。这里有比较多的一些实例。

  <%

  Dim MyFileFolder

  Set MyFileFolder = New FileFolderCls

  ''Response.Write MyFileFolder.MoveAFile("f:\123\4561.exe","f:\123\4562.txt")

  ''Response.Write MyFileFolder.MoveAFolder("f:\456","f:\ditg\456")

  ''Response.Write MyFileFolder.ShowFileSystemType("i:\")

  ''Response.Write MyFileFolder.CopyAFile("f:\123\4562.txt","f:\123\4563.txt")

  ''!!!!

  ''Response.Write MyFileFolder.CopyAFolder("f:\123\","f:\789\")

  ''Response.Write MyFileFolder.ShowFolderList("f:\ditg")

  ''Response.Write MyFileFolder.ShowFileList("f:\123\123")

  ''Response.Write MyFileFolder.DeleteAFile("f:\123\4562.txt")

  ''Response.Write MyFileFolder.DeleteAFolder("f:\456\")

  ''Response.Write MyFileFolder.CreateFolderDemo("f:\147\")

  ''Response.Write MyFileFolder.GetFileSize("f:\123\4563.txt")

  ''Response.Write MyFileFolder.GetFolderSize("f:\123\123.txt")

  ''Response.Write MyFileFolder.ShowFileAccessInfo("f:\123\123.txt",1)&"<br>"

  ''Response.Write MyFileFolder.ShowFileAccessInfo("f:\123\123.txt",2)&"<br>"

  ''Response.Write MyFileFolder.ShowFileAccessInfo("f:\123\123.txt",3)&"<br>"

  ''Response.Write MyFileFolder.ShowFileAccessInfo("f:\123\123.txt",4)&"<br>"

  ''Response.Write MyFileFolder.ShowFileAccessInfo("f:\123\123.txt",5)&"<br>"

  ''Response.Write MyFileFolder.ShowFileAccessInfo("f:\123\123.txt",6)&"<br>"

  ''Response.Write MyFileFolder.ShowFileAccessInfo("f:\123\123.txt",7)&"<br>"

  ''Response.Write MyFileFolder.ShowFileAccessInfo("f:\123\123.txt",8)&"<br>"

  ''Response.Write MyFileFolder.ShowFolderAccessInfo("f:\123\",1)&"<br>"

  ''Response.Write MyFileFolder.ShowFolderAccessInfo("f:\123\",2)&"<br>"

  ''Response.Write MyFileFolder.ShowFolderAccessInfo("f:\123\",3)&"<br>"

  ''Response.Write MyFileFolder.ShowFolderAccessInfo("f:\123\",4)&"<br>"

  ''Response.Write MyFileFolder.ShowFolderAccessInfo("f:\123\",5)&"<br>"

  ''Response.Write MyFileFolder.ShowFolderAccessInfo("f:\123\",6)&"<br>"

  ''Response.Write MyFileFolder.ShowFolderAccessInfo("f:\123\",7)&"<br>"

  ''Response.Write MyFileFolder.ShowFolderAccessInfo("f:\123\",8)&"<br>"

  ''Response.Write MyFileFolder.WriteTxtFile("f:\123\cexo.txt","",1)&"<br>"

  ''Response.Write MyFileFolder.WriteTxtFile("f:\123\cexo.txt","cexowxfdw",1)&"<br>"

  ''Response.Write MyFileFolder.WriteTxtFile("f:\123\cexo.txt",Chr(13)&Chr(10)

  &"cexowxfdw",2)&"<br>"

  ''Response.Write MyFileFolder.ReadTxtFile("f:\123\cexo.txt")&"<br>"

  Response.Write MyFileFolder.DisplayLevelDepth("F:\ditg\ditg\bumen\images")&"<br>"

  Class FileFolderCls

  Public fso

  Private Sub Class_Initialize()

  Set fso = CreateObject("Scripting.FileSystemObject")

  End Sub

  Private Sub Class_Terminate()

  Set fso = Nothing

  End Sub

  ''//==================================文件操作==================================

  ''取文件大小

  Function GetFileSize(FileName)

  ''//功能:取文件大小

  ''//形参:文件名

  ''//返回值:成功为文件大小,失败为-1

  ''//

  Dim f

  If ReportFileStatus(FileName) = 1 Then

  Set f = fso.Getfile(FileName)

  GetFileSize = f.Size

  Else

  GetFileSize = -1

  End if

  End Function

  ''文件删除

  Function DeleteAFile(filespec)

  ''//功能:文件删除

  ''//形参:文件名

  ''//返回值:成功为1,失败为-1

  ''//

  If ReportFileStatus(filespec) = 1 Then

  fso.DeleteFile(filespec)

  DeleteAFile = 1

  Else

  DeleteAFile = -1

  End if

  End Function

  ''显示文件列表

  Function ShowFileList(folderspec)

  ''//功能:目录存在时显示此目录下的所有文件

  ''//形参:目录名

  ''//返回值:成功为文件列表,失败为-1

  ''//

  Dim f, f1, fc, s

  If ReportFolderStatus(folderspec) = 1 Then

  Set f = fso.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

  ''!!!

  ''文件复制

  Function CopyAFile(SourceFile,DestinationFile)

  ''//功能:源文件存在时,才能对文件进行复制,目的文件无影响

  ''//形参:源文件,目的文件

  ''//返回值:成功为1,失败为-1

  ''//

  Dim MyFile

  If ReportFileStatus(SourceFile) = 1 Then

  Set MyFile = fso.GetFile(SourceFile)

  MyFile.Copy (DestinationFile)

  CopyAFile = 1

  Else

  CopyAFile = -1

  End if

  End Function

  ''文件移动

  ''Response.Write MoveAFile("f:\123\4561.exe","f:\123\4562.txt")

  Function MoveAFile(SourceFile,DestinationFile)

  ''//功能:源文件存在时目的文件不存在时才能对文件进行移动

  ''//形参:源文件,目的文件

  ''//返回值:成功为1,失败为-1

  ''//

  If ReportFileStatus(SourceFile)=1 And ReportFileStatus(DestinationFileORPath) =

  -1 Then

  fso.MoveFile SourceFile,DestinationFileORPath

  MoveAFile = 1

  Else

  MoveAFile = -1

  End if

  End Function

  ''文件是否存在?

  ''Response.Write ReportFileStatus("G: oft\delphi\my_pro\代码库.exe")

  Function ReportFileStatus(FileName)

  ''//功能:判断文件是否存在

  ''//形参:文件名

  ''//返回值:成功为1,失败为-1

  ''//

  Dim msg

  msg = -1

  If (fso.FileExists(FileName)) Then

  msg = 1

  Else

  msg = -1

  End If

  ReportFileStatus = msg

  End Function

  ''文件创建日期

  ''Response.Write ShowDateCreated("G: oft\delphi\my_pro\代码库.exe")

  ''Response.Write ShowDateCreated("G: oft\delphi\my_pro\复件 代码库.exe")

  Function ShowDateCreated(filespec)

  ''//功能:文件创建日期

  ''//形参:文件名

  ''//返回值:成功:文件创建日期,失败:-1

  ''//

  Dim f

  If ReportFileStatus(filespec) = 1 Then

  Set f = fso.GetFile(filespec)

  ShowDateCreated = f.DateCreated

  Else

  ShowDateCreated = -1

  End if

  End Function

  ''文件属性

  ''Response.Write GetAttributes("G: oft\delphi\my_pro\复件 代码库.exe")

  Function GetAttributes(FileName)

  ''//功能:显示文件属性

  ''//形参:文件名

  ''//返回值:成功:文件属性,失败:-1

  ''//

  Dim f,Str

  If ReportFileStatus(FileName) = 1 Then

  Set f = fso.GetFile(FileName)

  Select Case f.attributes

  Case 0 Str="普通文件。没有设置任何属性。 "

  Case 1 Str="只读文件。可读写。 "

  Case 2 Str="隐藏文件。可读写。 "

  Case 4 Str="系统文件。可读写。 "

  Case 16 Str="文件夹或目录。只读。 "

  Case 32 Str="上次备份后已更改的文件。可读写。 "

  Case 1024 Str="链接或快捷方式。只读。 "

  Case 2048 Str=" 压缩文件。只读。"

  End Select

  GetAttributes = Str

  Else

  GetAttributes = -1

  End if

  End Function

  ''最后一次访问/最后一次修改时间

  ''Response.Write ShowFileAccessInfo("G: oft\delphi\my_pro\复件 代码库.exe")

  Function ShowFileAccessInfo(FileName,InfoType)

  ''//功能:显示文件创建时信息

  ''//形参:文件名,信息类别

  ''// 1 -----创建时间

  ''// 2 -----上次访问时间

  ''// 3 -----上次修改时间

  ''// 4 -----文件路径

  ''// 5 -----文件名称

  ''// 6 -----文件类型

  ''// 7 -----文件大小

  ''// 8 -----父目录

  ''// 9 -----根目录

  ''//返回值:成功为文件创建时信息,失败:-1

  ''//

  Dim f, s

  If ReportFileStatus(FileName) = 1 then

  Set f = fso.GetFile(FileName)

  Select Case InfoType

  Case 1 s = f.DateCreated ''// 1 -----

  创建时间

  Case 2 s = f.DateLastAccessed ''// 2 -----上次访问

  时间

  Case 3 s = f.DateLastModified ''// 3 -----上次修改

  时间

  Case 4 s = f.Path ''// 4

  -----文件路径

  Case 5 s = f.Name ''// 5

  -----文件名称

  Case 6 s = f.Type ''// 6

  -----文件类型

  Case 7 s = f.Size ''// 7

  -----文件大小

  Case 8 s = f.ParentFolder ''// 8 -----

  父目录

  Case 9 s = f.RootFolder ''// 8 -----

  根目录

  End Select

  ShowFileAccessInfo = s

  ELse

  ShowFileAccessInfo = -1

  End if

  End Function

  ''写文本文件

  Function WriteTxtFile(FileName,TextStr,WriteORAppendType)

  Const ForReading = 1, ForWriting = 2 , ForAppending = 8

  Dim f, m

  Select Case WriteORAppendType

  Case 1: ''文件进行写操作

  Set f = fso.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 = fso.OpenTextFile(FileName, ForAppending)

  f.Write TextStr

  f.Close

  WriteTxtFile = 1

  Else

  WriteTxtFile = -1

  End if

  End Select

  End Function

  ''读文本文件

  Function ReadTxtFile(FileName)

  Const ForReading = 1, ForWriting = 2

  Dim f, m

  If ReportFileStatus(FileName) = 1 then

  Set f = fso.OpenTextFile(FileName, ForReading)

  m = f.ReadLine

  ''m = f.ReadAll

  ''f.SkipLine

  ReadTxtFile = m

  f.Close

  Else

  ReadTxtFile = -1

  End if

  End Function

  ''建立文本文件

  ''//==================================目录操作==================================

  ''取目录大小

  Function GetFolderSize(FolderName)

  ''//功能:取目录大小

  ''//形参:目录名

  ''//返回值:成功为目录大小,失败为-1

  ''//

  Dim f

  If ReportFolderStatus(FolderName) = 1 Then

  Set f = fso.GetFolder(FolderName)

  GetFolderSize = f.Size

  Else

  GetFolderSize = -1

  End if

  End Function

  ''创建的文件夹

  Function CreateFolderDemo(FolderName)

  ''//功能:创建的文件夹

  ''//形参:目录名

  ''//返回值:成功为1,失败为-1

  ''//

  Dim f

  If ReportFolderStatus(Folderspec) = 1 Then

  CreateFolderDemo = -1

  Else

  Set f = fso.CreateFolder(FolderName)

  CreateFolderDemo = 1

  End if

  End Function

  ''!!!

  ''目录删除

  Function DeleteAFolder(Folderspec)

  ''//功能:目录删除

  ''//形参:目录名

  ''//返回值:成功为1,失败为-1

  ''//

  Response.write Folderspec

  If ReportFolderStatus(Folderspec) = 1 Then

  fso.DeleteFolder (Folderspec)

  DeleteAFolder = 1

  Else

  DeleteAFolder = -1

  End if

  End Function

  ''显示目录列表

  Function ShowFolderList(folderspec)

  ''//功能:目录存在时显示此目录下的所有子目录

  ''//形参:目录名

  ''//返回值:成功为子目录列表,失败为-1

  ''//

  Dim f, f1, fc, s

  If ReportFolderStatus(folderspec) = 1 Then

  Set f = fso.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

  ''!!!!

  ''目录复制

  Function CopyAFolder(SourceFolder,DestinationFolder)

  ''//功能:源目录存在时,才能对目录进行复制,目的目录无影响

  ''//形参:源目录,目的目录

  ''//返回值:成功为1,失败为-1

  ''//

  ''Dim MyFolder

  ''If ReportFolderStatus(SourceFolder) = 1 and ReportFolderStatus

  (DestinationFolder) = -1 Then

  ''Set MyFolder = fso.GetFolder(SourceFolder)

  fso.CopyFolder SourceFolder,DestinationFolder

  CopyAFolder = 1

  ''Else

  CopyAFolder = -1

  ''End if

  End Function

  ''目录进行移动

  Function MoveAFolder(SourcePath,DestinationPath)

  ''//功能:源目录存在时目的目录不存在时才能对目录进行移动

  ''//形参:源目录,目的目录

  ''//返回值:成功为1,失败为-1

  ''//

  If ReportFolderStatus(SourcePath)=1 And ReportFolderStatus(DestinationPath)=0

  Then

  fso.MoveFolder SourcePath, DestinationPath

  MoveAFolder = 1

  Else

  MoveAFolder = -1

  End if

  End Function

  ''判断目录是否存在

  ''Response.Write ReportFolderStatus("G: oft\delphi\my_pro\")

  Function ReportFolderStatus(fldr)

  ''//功能:判断目录是否存在

  ''//形参:目录

  ''//返回值:成功为1,失败为-1

  ''//

  Dim msg

  msg = -1

  If (fso.FolderExists(fldr)) Then

  msg = 1

  Else

  msg = -1

  End If

  ReportFolderStatus = msg

  End Function

  ''目录创建时信息

  Function ShowFolderAccessInfo(FolderName,InfoType)

  ''//功能:显示目录创建时信息

  ''//形参:目录名,信息类别

  ''// 1 -----创建时间

  ''// 2 -----上次访问时间

  ''// 3 -----上次修改时间

  ''// 4 -----目录路径

  ''// 5 -----目录名称

  ''// 6 -----目录类型

  ''// 7 -----目录大小

  ''// 8 -----父目录

  ''// 9 -----根目录

  ''//返回值:成功为目录创建时信息,失败:-1

  ''//

  Dim f, s

  If ReportFolderStatus(FolderName) = 1 then

  Set f = fso.GetFolder(FolderName)

  Select Case InfoType

  Case 1 s = f.DateCreated ''// 1 -----

  创建时间

  Case 2 s = f.DateLastAccessed ''// 2 -----上次访问

  时间

  Case 3 s = f.DateLastModified ''// 3 -----上次修改

  时间

  Case 4 s = f.Path ''// 4

  -----文件路径

  Case 5 s = f.Name ''// 5

  -----文件名称

  Case 6 s = f.Type ''// 6

  -----文件类型

  Case 7 s = f.Size ''// 7

  -----文件大小

  Case 8 s = f.ParentFolder ''// 8 -----

  父目录

  Case 9 s = f.RootFolder ''// 9 -----

  根目录

  End Select

  ShowFolderAccessInfo = s

  ELse

  ShowFolderAccessInfo = -1

  End if

  End Function

  Function DisplayLevelDepth(pathspec)

  Dim f, n ,Path

  Set f = fso.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

  ''//==================================磁盘操作==================================

  ''驱动器是否存在?

  ''Response.Write ReportDriveStatus("C:\")

  Function ReportDriveStatus(drv)

  ''//功能:判断磁盘是否存在

  ''//形参:磁盘

  ''//返回值:成功为1,失败为-1

  ''//

  Dim msg

  msg = -1

  If fso.DriveExists(drv) Then

  msg = 1

  Else

  msg = -1

  End If

  ReportDriveStatus = msg

  End Function

  ''--------可用的返回类型包括 FAT、NTFS 和 CDFS。

  ''Response.Write ShowFileSystemType("C:\")

  Function ShowFileSystemType(drvspec)

  ''//功能:磁盘类型

  ''//形参:磁盘名

  ''//返回值:成功为类型:FAT、NTFS 和 CDFS,失败:-1

  ''//

  Dim d

  If ReportDriveStatus(drvspec) = 1 Then

  Set d = fso. GetDrive(drvspec)

  ShowFileSystemType = d.FileSystem

  ELse

  ShowFileSystemType = -1

  End if

  End Function

  End Class

  %>