在JavaScript中实现文件操作功能,主要是依靠FileSystemObject对象。该对象是用来创建、删除和获得有关信息,以及通常用来操作驱动器、文件夹和文件的方法和属性。下面对该对象所包含的对象和集合进行说明,如表所示。
1.动态创建FileSystemObject对象
要想对文件进行相应的操作,必须对FileSystemObject对象进行实例化,也就是动态创建FileSystemObject对象。
fso = new ActiveXObject("Scripting.FileSystemObject");
参数说明:
fso:是FileSystemObject对象的一个实例。
在动态实例化FileSystemObject对象后,便可以用实例化变量fso对Drive对象、Drives集合、File对象、Files集合、Folder对象、Folders集合和TextStream对象进行相应的操作。
2.FileSystemObject对象的方法
(1)GetAbsolutePathName()方法
GetAbsolutePathName()方法根据提供的路径返回明确完整的路径。也就是说如果路径提供了从指定驱动器的根开始的完整的引用,那么它就是明确和完整的。如果路径指定的是映射驱动器的根文件夹,那么完整的路径将只能由一个路径分隔符“\”结束。
object.GetAbsolutePathName(pathspec)
参数说明:
object:必选。FileSystemObject对象的名称。
pathspec:必选。要变为明确完整路径的路径说明。该参数相应设置如表所示。
注意:在pathspec 参数中的c指的并不是c盘,而是服务器端当前路径的盘符。
(2)GetBaseName()方法
GetBaseName()方法将以字符串的形式返回指定路径中最后成分中的基本名称,不包含文件扩展名。
object.GetBaseName(path)
参数说明:
object:必选。FileSystemObject对象的名称。
path:必选。返回其最后成分中的基本名称的指定路径。当路径与path参数不匹配时, GetBaseName()方法将返回长度为零的空字符串。
注意:GetBaseName()方法只作用于所提供的path字符串。它不试图解析路径,也不检查指定路径是否存在,该方法所获取的最后成分的进本名称并不一定是文件名,也可以是文件夹的名称
(3)GetDriveName()方法
该方法根据指定路径返回包含驱动器名称的字符串。
object.GetDriveName(path)
参数说明:
object:必选。FileSystemObject的名称。
path:必选。路径说明,将根据其中成分返回驱动器名称。
注意:GetDriveName()方法 它不试图解析路径,也不检查指定路径是否存在,该方法无法确定驱动器时,将返回一个指定字符串
(4)GetDrive()方法
该方法用于返回指定路径中驱动器的Drive对象。
object.GetDrive(drivespec);
参数说明:
object:必选。FileSystemObject的名称。
drivespec:必选。该参数可以是驱动器号(c)、带冒号的驱动器号(c:)、带冒号和路径分隔符的驱动器号(c:\),或者任意网络共享的说明(\\computer2\share1)。
(5)GetExtensionName()方法
GetExtensionName()方法用于返回指定路径中最后成分扩展名的字符串。
object.GetExtensionName(path)
参数说明:
object:必选。FileSystemObject的名称。
path:必选。返回其扩展名的指定路径。
注意:对于网络驱动器,根目录 “ \ ” 将被认为是一个成分。如果没有和path参数匹配的成分,那么GetExtensionName()方法将返回长度为0的空字符串;
(6)GetFileName()方法
GetFileName()方法返回指定路径的最后成分,但指定的路径不能只是驱动器说明,也可以是共享路径。
object.GetFileName(pathspec)
参数说明:
object:必选。FileSystemObject的名称。
pathspec:必选。指定文件的路径(绝对或相对路径)。
(7)GetParentFolderName()方法
GetParentFolderName()方法根据指定路径中的最后成分返回其父文件夹名称的字符串。
object.GetParentFolderName(path)
参数说明:
object:必选。FileSystemObject的名称。
path:必选。文件名所在的完整路径。
注意:GetFileName()方法只作用于所提供的path字符串。它不试图解析路径,也不检查指定路径是否存在,该方法所获取的最后成分没有父文件夹时,将返回长度为0的空字符串
(8)GetSpecialFolder()方法
该方法返回指定的特殊文件夹对象。
object.GetSpecialFolder(folderspec)
参数说明:
object:必选。FileSystemObject的名称。
folderspec:必选。要返回的特殊文件夹的名称。该参数的设置如表5.9所示。
folderspec参数相关设置
常数:WndowFolder 值 0 ,说明:windows文件夹,包含了有windows操作系统安装的文件
常数:SystemFolder值 1 ,说明:包含库、字体,以及设备驱动程序的System文件夹
常数:TemporsryFolder 值2,说明:用于存储临时文件的Temp文件夹。这个路径可以在TMP环境变量中找到
(9)GetTempName()方法
该方法返回一个随机产生的临时文件或文件夹名,有助于执行那些需要临时文件或文件夹的操作。
object.GetTempName();
参数说明:
object:必选。FileSystemObject的名称。
说明: GetTempName()方法并不是创建文件,它指提供一个临时文件名,可以通过CreateTextFile()方法来 创建文件
Drive对象负责收集系统中的物理或逻辑驱动器资源内容,如驱动器的共享名和有多少可用空间。在使用该对象时,不一定非要把驱动器实物地连接到系统上,也可以通过网络在逻辑上连接起来。需要说明的是,在这里所说的驱动器不一定非是硬盘,也可以是RAM磁盘等。
1.动态创建Drive对象
使用Drive对象来获取驱动器的相关信息,必需要创建Drive对象,该对象是通过FileSystemObject对象的GetDrive()方法来创建的。
例如,对C盘驱动器创建一个Drive对象。代码如下:
var fso=new ActiveXObject("Scripting.FileSystemObject");
var s=fso.GetDrive("C:\\");
2.Drive对象的属性
(1)FreeSpace属性
向用户返回指定驱动器或网络共享上的可用空间的大小。只读。
object.FreeSpace
object应为Drive对象。
说明:通常情况下,由FreeSpace属性返回的值和由AvailableSpace属性返回的值是相同的,对于支持quotas的计算机系统来说两者有可能不同。
(2)IsReady属性
判断当前驱动器是否可用,如果指定驱动器已就绪则返回True ;否则False。
object.IsReady
object应为Drive对象。
说明:对于可移动媒体的驱动器和CD-ROM驱动器来说,IsReady只有在插入了适当的媒体并已准备好访问时才返回true。
(3)TotalSize属性
以字节为单位返回驱动器或网络共享的所有空间大小。
object.TotalSize
object总是为Drive对象。
(4)DriveType属性
返回一个值,表示所指定驱动器的类型。
object.DriveType
其中object总是一个Drive对象。
(5)SerialNumber属性
返回连续十进制数字,用于唯一标识磁盘卷。
object.SerialNumber
object为Drive对象。
说明:可以使用SerialNumber 属性来确保在带有可移动媒体的
(6)AvailableSpace属性
返回在所指定的驱动器或网络共享上可用的空间的大小。
object.AvailableSpace
其中object总是一个Drive对象。
说明:通常情况下,由FreeSpace属性返回的值和由AvailableSpace属性返回的值是相同的,对于支持quotas的计算机系统来说两者有可能不同。
(7)FileSystem属性
返回指定驱动器所使用的文件系统的类型。
object.FileSystem
其中object总是一个Drive对象。
说明:可能的返回类型包括KAT 、NTFS、CDFS。
(8)Path属性
返回指定文件、文件夹或驱动器的路径。
object.Path
参数说明:
object总是为File、Folder或Drive对象。
说明:驱动器字母后不包括根驱动器,例如:从驱动器的路径是C:,而不是C:\。
(9)RootFolder属性
返回一个Folder对象,表示指定驱动器的根文件夹。只读。
object.RootFolder
参数说明:
object总是为Drive对象。
注意:可以通过返回的Folder对象来访问取钉器上的所有文件和文件夹。
(10)ShareName属性
返回指定驱动器的网络共享名。
object.ShareName
参数说明:
object总是为Drive对象。
说明: 如果object不是网络驱动器,那么shareName属性将返回长度为0的字符串。
(11)VolumeName属性
设置或返回指定驱动器的卷名。读/写。
object.VolumeName[= newname]
参数说明:
object:必选项。总是为Drive对象的名称。
newname:可选项。如果提供了这个部分,那么newname就将成为指定的object的新名称。
File对象可以获取服务器端指定文件的相关属性,如文件的创建、修改、访问时间。也可以对文件或文件夹进行复制、移除或删除的操作。
1.动态创建File对象
使用File对象对指定文件的所有属性进行访问,必需要创建File对象,该对象是通过FileSystemObject对象的GetFile()方法来创建的。
GetFile()方法根据指定的路径中的文件返回相应的File对象。
object.GetFile(filespec)
参数说明:
object:必选。FileSystemObject的名称。
Filespec:必选。指定文件的路径(绝对或相对路径)。
例如,将qq.txt文件以File对象进行实例化。代码如下:
var fso=new ActiveXObject("Scripting.FileSystemObject");
var s=fso.GetFile("E:\\word\\JavaScript\\qq.txt");
2.File对象的方法
(1)Copy方法
Copy方法对单个File或Folder所产生的结果和使用FileSystemObject.CopyFile或FileSystemObject.CopyFolder所执行的操作结果一样,其中,后者把由object所引用的文件或文件夹作为参数传递。但是请注意,后两种替换方法能够复制多个文件或文件夹。
将指定文件或文件夹从一个位置复制到另一位置。
object.Copy( destination[, overwrite] );
参数说明:
object:必选项。应为File或Folder对象的名称。
destination:必选项。复制文件或文件夹的目的位置。不允许通配字符。
overwrite:可选项。Boolean值,如果要覆盖已有文件或文件夹,则为True(默认);否则,则为False。
(2)Delete方法
删除指定的文件或文件夹。
object.Delete( force );
参数说明:
object:必选项。应为File或Folder对象的名称。
force:可选项。Boolean值,如果要删除设置了只读属性的文件或文件夹则为True;否则为False(默认)。
说明:1、如果指定的文件或文件夹不存在,那么会残生一个错误;
2、Delete()方法对于单个的file或folder产生的结果和使用FileStytemObject.DeleteFile()或FileStytemObject.DeleteFolder()方法所执行的操作一样
3、Delete()方法对于包含内容和不包含内容的文件夹不做区分,删除指定文件夹时不考虑是否包含了内容。
(3)Move方法
将指定文件或文件夹从一个位置移动到另一个位置。
object.Move( destination );
参数说明:
object:必选项。应为File或Folder对象的名称。
destination:必选项。移动文件或文件夹的目的位置。不允许通配字符。
说明:move()方法对于单个的file或folder产生的结果和使用FileStytemObject.MoveFolder()或FileStytemObject.MoveFolder()方法所执行的操作结果一样。但是请注意,后两种替换方法都能够移动多个文件或文件夹
(4)OpenAsTextStream方法
打开指定的文件并返回一个TextStream对象,可以通过这个对象对文件进行读、写或追加。
object.OpenAsTextStream([iomode, [format]])
参数说明:
object:必选项。应为File对象的名称。
iomode:可选项。指明输入/输出的模式。可以是三个常数之一:ForReading、ForWriting或ForAppending。
format:可选项。使用三态值中的一个来指明打开文件的格式。如果忽略,文件将以ASCII格式打开。
iomode参数可以是下列设置中的任一种:
2.File对象的属性
(1)Attributes属性
设置或返回文件或文件夹的属性。根据不同属性为读/写或只读。
object.Attributes [= newattributes]
参数说明:
object:必选项。应为File或Folder对象的名称。
newattributes:可选项。如果提供了这个部分,那么newattributes将成为指定的object的新属性值。newattributes参数可以是下列各值或者这些值的任意逻辑组合:
newattribute参数值
(2)DateCreated属性
返回指定文件或文件夹的创建日期和时间。只读。
object.DateCreated
object应为File或Folder对象。
(3)DateLastAccessed属性
返回最后访问指定文件或文件夹的日期和时间。只读。
object.DateLastAccessed
object应为File或Folder对象。
说明:这个方法的操作依赖于底层的操作系统,如果操作系统不支持提供时间信息那么将不会返回任何信息。
(4)DateLastModified属性
返回最后修改指定文件或文件夹的日期和时间。只读。
object.DateLastModified
object应为File或Folder对象。
(5)Name属性
设置或返回指定文件或文件夹的名称。 读/写。
object.Name [= newname]
Name属性包括了以下部分:
object:必选项。应为File或Folder对象的名称。
newname:可选项。如果提供了这个部分,newname将成为指定的object的新名称。
(6)Size属性
对于文件,以字节为单位返回指定文件的大小。对于文件夹,以字节为单位返回文件夹中包含的所有文件和子文件夹的大小。
object.Size
object应为File或Folder对象。
(7)Type属性
返回关于文件或文件夹类型的信息。例如,对于以.TXT结尾的文件将返回“文本文档”。
object.Type
object应为File或Folder对象。
(8)ShortName属性
返回短名称,这些短名称由需要以前的8.3命名规范的程序使用。
object.ShortName
object应为File或Folder对象。
(9)Drive属性
返回指定文件或文件夹所在驱动器的驱动器号。只读。
object.Drive
object应为File或Folder对象。
(10)ParentFolder属性
返回指定文件或文件夹的父文件夹对象。只读。
object.ParentFolder
object应为File或Folder对象。
(11)Path属性
返回指定文件、文件夹或驱动器的路径。
object.Path
object总是为File、Folder或Drive对象。
驱动器字母后不包括根驱动器。例如,C驱动器的路径是C:,而不是C:\。
(12)ShortPath属性
返回短路径名,这些短文件名由需要以前的8.3文件命名规范的程序使用。
object.ShortPath
object应为File或Folder对象。
Folder对象可以获取服务器端指定文件夹的相关属性,它与File对象的实现过程基本相同。只是Folder对象针对的是文件夹,File对象针对的是文件。
1.动态创建Folder对象
使用Folder对象对指定文件夹的所有属性进行访问,必需要创建Folder对象,该对象是通过FileSystemObject对象的GetFolder()方法来创建的。
GetFolder()方法根据指定的路径中的文件返回相应的Folder对象。
object.GetFolder(filespec)
参数说明:
object:必选。FileSystemObject的名称。
Filespec:必选。指定文件夹的路径(绝对或相对路径)。
注意: 如果指定文件夹不在将出错!
例如,将qq.txt文件以File对象进行实例化。代码如下:
var fso=new ActiveXObject("Scripting.FileSystemObject");
var s=fso.GetFolder("E:\\word\\JavaScript");
2.Folder对象的方法与属性
Folder对象的属性和方法与File对象中的属性和方法基本相同,只是其功能针对的不是文件而是文件夹。在Folder对象中有两个属性是File对象所没有的,下面对其进行介绍。
(1)Files属性
返回一个Files集合,由指定文件夹中包含的所有File对象组成,包括设置了隐藏和系统文件属性的文件。
object.Files
object应为Folder对象。
(2)IsRootFolder属性
如果指定的文件夹是根文件夹则返回True;否则返回False。
object.IsRootFolder
object应为Folder对象。