就是利用FSO显示某个目录下的文件或文件夹时,如何进行排序。比如:按照文件大小排序、文件修改日期排序,或者是按照文件名排序等等。
'假设这是你的文件夹
folderPath = "d:\test"
set fso = server.CreateObject("Scripting.FileSystemObject")
set myfolder = fso.GetFolder
for each objFile in myfolder.Files
filename = objFile.Name
....
next
'file 对象有如下属性:
Attributes 属性 | DateCreated 属性 | DateLastAccessed 属性 | DateLastModified 属性 | Drive 属性 | Name 属性 | ParentFolder 属性 | Path 属性 | ShortName 属性 | ShortPath 属性 | Size 属性 | Type 属性
对文件进行处理 对文件进行处理
这个部分是介绍怎样进行文件处理的:拷贝,移动以及删除文件;以及怎样检测一个文件是否存在和接收一个文件的有关属性。
拷贝、移动以及删除文件
有不止一种方法来对文件进行拷贝、移动以及删除工作。你可以利用FileSystemObject对象的方法或者File对象的方法,其中FileSystemObject对象的方法更具有些变通性,因为你会不局限于一个单独的文件上。
下面是FileSystemObject对象对文件操作的一些方法:
■CopyFile source, destination,[Overwrite]。这个方法将文件进行复制,你可以使用 source参数统配符来在一个时刻进行多个文件的复制。OverWrite参数将在目的文件已经存在的情况下进行覆盖操作。
■MoveFile source, destination.这个方法对文件进行移动操作,同样你可以使用统配 符来移动多个文件,不过如果目的文件已经存在,则会报错而不允许覆盖。
■DeleteFile FileSpecifier。这个方法删除指定文件,同样还是可以利用统配符来进 行多文件的删除。如果没有符合统配符的文件,将会报错。
在你使用这些方法之前,首先当然还是创建一个FileSystemObject对象的事例。下面就是一个完整的使用示例:
<%
‘创建一个FileSystemObject的事例
Set MyFileObject=Server.CreateObject(“Scripting.FileSystemObject”)
‘创建一个要进行操作的文件
Set MyFile=MyFileObject.CreateTextFile(“c:\test.txt”)
MyFile.WriteLine(“Hello”)
MyFile.Close
‘复制文件操作
MyFileObject.CopyFile “c:\test.txt” “c:\test2.txt”
‘移动文件操作
MyFileObject.MoveFile “c:\test.txt” “c:\test3.txt”
‘删除这些文件
MyFileObject.DeleteFile “c:\test.txt”
eObject.DeleteFile “c:\test3.txt”
%>
除了使用FileSystemObject对象的方法来进行这种操作以外,你还可以使用FILE对象。下面是File对象相关操作的同等方法:
■Copy newcopy,[Overwrite]。这种方法给当前文件创建一个拷贝,当可选的 OverWrite参数为TRUE时,如果存在同名的目的文件,则进行覆盖。
■Move newcopy.这个方法用来移动当前文件,同时当前文件跟随到新的名称。
■Delete。删除当前文件。
在你使用这些方法之前,你必须创建File对象的一个事例,这样的事例创建是在FileSystemObject对象中使用GetFile()方法来完成的,下面这个脚本就是利用File对象进行各种操作的一个示例:
<%
‘创建一个FileSystemObject对象的事例
Set MyFileObject=Server.CreateObject(“Scripting.FileSystemObject”)
‘创建一个要进行操作的文件
Set MyFile=MyFileObject.CreateTextFile(“c:\test.txt”)
MyFile.WriteLine(“Hello”)
MyFile.Close
‘创建一个File对象的事例
Set afile=MyFileObject.GetFile(“c:\test.txt”)
‘复制文件
Afile.copy “c:\test2.txt”
‘移动文件
Afile.Move “c:\test3.txt”
‘删除文件
afile.Delete
%>
检测文件是否存在
如果需要了解一个特定的文件是否存在,你需要FileSystemObject对象的FileExists()方法,只需要传递其物理地址就可以从返回值是True和False来判断其是否存在,下面就是这样一个例子:
<HTML>
<HEAD><TITLE>文件是否存在示例</TITLE></HEAD>
<BODY>
<%
MySelf=Request.ServerVariables(“PATH_TRANSLATED”)
‘创建一个FileSystemObject对象事例
Set MyFileObject=Server.CreateObject(“Scripting.FileSystemObject”)
IF MyFileObject.FileExists(“MySelf”)
Response.write(“存在这个文件”)
Else
Response.write(“不存在这个文件”)
END IF
%>
</BODY>
</HTML>
这个脚本就是检查是否存在一个指定的文件,在本例中,显然是存在的,因为MySelf就是当前这个文件(这里面使用了ServerVariables变量PATH_TRANSLATED来获取当前文件的物理地址),当前这个文件无论如何肯定是存在的,因此返回值肯定是TRUE,那么显示为“存在这个文件”。
接受文件属性
当处理文件时,有些属性是需要了解的,下面是File对象的属性列表:
■Attributes.这个属性类似于Dos命令的Attrib,显示当前文件的系统属性。例如Read-Only,Hidden,System等等
■DateCreated.这个属性返回文件创建的时间和日期。
■DateLastAccessed.这个属性返回该文件上一次被使用的日期和时间
■DateLastModified.这个属性返回该文件上一次被修改的日期和时间
■Drive. 这个属性返回值为该文件所在的驱动器
■Name.这个属性返回该文件文件名
■ParentFolder.这个属性返回值为该文件所处的文件夹
■Path.返回该文件的全路径
■Size.返回该文件的字节数
■Type.返回该文件类型,例如Text文本,Asp文件,或者网络资源(HTML)
在使用这些属性之前,依然首先需要创建一个File对象的事例。下一个例子就是显示c:\test.txt的各项属性。
<HTML>
<HEAD><TITLE>迈至科网络ASP教程之文件属性示例</TITLE></HEAD>
<BODY>
<%
‘创建一个FileSystemObject对象的事例
Set MyFileObject=Server.CreateObject(“Scripting.FileSystemObject”)
‘创建一个File对象的事例
Set Myfile=MyFileObject.GetFile(“c:\test.txt”)
%>
<Br>名称:<%=Myfile.Name %>
<Br>路径:<%=Myfile.Path %>
<Br>驱动器:<%=Myfile.Drive %>
<Br>大小:<%=Myfile.size %>
<Br>类型:<%=Myfile.type %>
<Br>属性:<%=Myfile.Attributes %>
<Br>创建日期:<%=Myfile.DateCreated %>
<Br>上次进入日期:<%=Myfile.LastAccessed %>
<Br>上次修改日期:<%=Myfile.LassModified %>
</BODY>
</HTML>
那么显示结果如图19.2所示。
图19.2 文件属性
Attributes属性需要解释,它的返回值是对应于下表的数字:
Attribute
值
Normal
0
Read-Only
1
Hidden
2
System
4
Volume
8
Directory
16
Archive
32
Alias
64
Compressed
128
那么,由于这里面属性为Archive和Hidden,所以结合起来就是2(Hidden)+32(Archieve)=34,从数学上可以理解,每一个整数对应这样的2的幂次的累加和肯定是唯一的,这些属性还可以进行设置,例如,使c:\test.txt变成具有Archieve,Read-Only两种属性 ,那么用下面这个脚本
<%
‘创建一个FileSystemObject对象的事例
Set MyFileObject=Server.CreateObject(“Scripting.FileSystemObject”)
‘创建一个File对象的事例
Set Myfile=MyFileObject.GetFile(“c:\test.txt”)
‘进行属性设置
MyFile.attributes=31
%>