博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

FSO 文件操作

Posted on 2006-10-28 16:47  孤峰皓月  阅读(659)  评论(0编辑  收藏  举报

就是利用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

%>