对文件进行处理

这个部分是介绍怎样进行文件处理的:拷贝,移动以及删除文件;以及怎样检测一个文件是否存在和接收一个文件的有关属性。

 

拷贝、移动以及删除文件

有不止一种方法来对文件进行拷贝、移动以及删除工作。你可以利用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

MyFileObject.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

%>