File 对象可以获取服务器端指定文件的相关属性,如文件的创建、修改、访问时间;也可以对文件或文件夹进行复制、移除或删除的操作。
使用 File 对象对指定文件的所有属性进行访问,必须创建 File 对象。该对象是通过 FileSystemObject 对象的 GetFile 方法来创建的。
GetFile 方法根据指定的路径中的文件返回相应的 File 对象。
语法格式如下:
object.GetFile(filespec);
object :必选, FileSystemObject 的名称。
filespec :必选,指定文件的路径(绝对或相对路径)。
Copy 方法对单个 File 或 Folder 所产生的结果和使用 FileSystemObject.CopyFile 或 FileSystemObject.CopyFolder 所执行的操作结果一样,其中,后者把由 object 所引用的文件或文件夹作为参数传递。但是请注意,后两种替换方法能够复制多个文件或文件夹。
将指定文件或文件夹从一个位置复制到另一位置,语法格式如下:
object.Copy(destination[,overwrite]);
object :必选项,应为 File 或 Folder 对象的名称。
destination :必选项,复制文件或文件夹的目的位置。不允许通配字符。
overwrite :可选项, Boolean 值。如果要覆盖已有文件或文件夹,则为 true (默认);否则为 false 。
删除指定的文件或文件夹。语法格式如下:
object.Delete(force);
object :必选项,应为 File 或 Folder 对象的名称。
force :可选项, Boolean 值。如果要删除设置了只读属性的文件或文件夹,则为 true ;否则为 false (默认)。
说明 如果指定的文件或文件夹不存在,那么会产生一个错误。
Delete 方法对于单个 File 或 Folder 产生的结果和使用 FileSystemObject.DeleteFile 或 FileSystemObject.DeleteFolder 所执行的操作结果一样。
Delete 方法对于包含内容和不包含内容的文件夹不做区分。删除指定的文件夹时,不考虑是否包含了内容。
将指定文件或文件夹从一个位置移动到另一个位置。语法格式如下:
object.Move(destination);
object :必选项,应为 File 或 Folder 对象的名称。
destination :必选项,移动文件或文件夹的目的位置。不允许通配字符。
说明 Move 方法对于单个 File 或 Folder 产生的结果和使用 FileSystemObject.MoveFile 或 FileSystemObject.MoveFolder 所执行的操作结果一样。但是请注意,后两种替换方法都能够移动多个文件或文件夹。
打开指定的文件并返回一个 TextStream 对象。可以通过这个对象对文件进行读、写或追加。语法格式如下:
object.OpenAsTextStream([iomode, [format]]);
object :必选项,应为 File 对象的名称。
iomode :可选项,指明输入 / 输出的模式。可以是三个常数之一: ForReading 、 ForWriting 或 ForAppending 。
format :可选项,使用三个值中的一个来指明打开文件的格式。如果忽略,文件将以 ASCII 格式打开。
设置或返回文件或文件夹的属性。根据不同属性,为读 / 写或只读。语法格式如下:
object.Attributes[=newattributes]
object :必选项,应为 File 或 Folder 对象的名称。
newattributes :可选项。如果提供了这个部分,那么 newattributes 将成为指定的 object 的新属性值。
返回指定文件或文件夹的创建日期和时间,只读。语法格式如下:
object.DateCreated;
返回最后访问指定文件或文件夹的日期和时间,只读。语法格式如下:
object.DateLastAccessed;
注意 该方法的操作依赖于底层的操作系统。如果操作系统不支持提供时间信息,那么将不会返回任何信息。
返回最后修改指定文件或文件夹的日期和时间,只读。语法格式如下:
object.DateLastModified;
设置或返回指定文件或文件夹的名称,读 / 写。语法格式如下:
object.Name[=newname]
object :必选项,应为 File 或 Folder 对象的名称。
newname :可选项。如果提供了这个部分, newname 将成为指定的 object 的新名称。
对于文件,以字节为单位返回指定文件的大小。对于文件夹,以字节为单位返回文件夹中包含的所有文件和子文件夹的大小。语法格式如下:
object.Size;
返回关于文件或文件夹类型的信息。例如,对于以 .txt 结尾的文件将返回"文本文档"。语法格式如下:
object.Type;
返回短名称。这些短名称由需要以前的 8.3 文件命名规范的程序使用。语法格式如下:
object.ShortName;
返回指定文件或文件夹所在驱动器的驱动器号,只读。语法格式如下:
object.Drive;
返回指定文件或文件夹的父文件夹对象,只读。语法格式如下:
object.ParentFolder;
返回指定文件、文件夹或驱动器的路径。语法格式如下:
object.Path;
驱动器字母后不包括根驱动器。例如, C 驱动器的路径是 C: ,而不是 C:\ 。
返回短路径名。这些短文件名由需要以前的 8.3 文件命名规范的程序使用。语法格式如下:
object.ShortPath;
Folder 对象可以获取服务器端指定文件夹的相关属性。它与 File 对象的实现过程基本相同;只是 Folder 对象针对的是文件夹,而 File 对象针对的是文件。
使用 Folder 对象对指定文件夹的所有属性进行访问,必须创建 Folder 对象。该对象是通过 FileSystemObject 对象的 GetFolder 方法来创建的。
GetFolder 方法根据指定的路径中的文件返回相应的 Folder 对象。
语法格式如下:
object.GetFolder(filespec);
Folder 对象的方法与属性。
Folder 对象的属性和方法与 File 对象的属性和方法基本相同,只是其功能针对的不是文件而是文件夹。 Folder 对象有两个属性是 File 对象所没有的,下面对其进行介绍。
返回一个 Files 集合,由指定文件夹中包含的所有 File 对象组成,包括设置了隐藏和系统文件属性的文件。语法格式如下:
object.Files;
IsRootFolder 属性。
如果指定的文件夹是根文件夹,则返回 true ;否则返回 false 。语法格式如下:
object.IsRootFolder;
WebBrowser 组件是 IE 内置的浏览器控件,无须用户下载。它的优点是客户端独立完成打印目标文档,减轻服务器负荷;缺点是源文档的分析操作复杂,并且要对源文档中要打印的内容进行约束。
在使用 WebBrowser 组件时,首先要在 <body>
标记的下面用 <object>
...</object>
标记声明 WebBrowser 组件。代码如下:
<object
id="Web"
width="0"
height="0"
classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"
></object>
对页面进行打印,主要是通过 WebBrowser 组件的 execWB 方法来实现的。可以通过该方法实现 IE 浏览器中菜单的相应功能。下面给出 execWB 方法的语法。
WebBrowser.execWB(nCmdID,nCmdExecOpt[,pvaIn][,pvaOut])
面给出 IE 浏览器中 WebBrowser 组件的 execWB 方法的一些常用功能。
WebBrowser.execWB(1, 1); // 打开
WebBrowser.execWB(2, 1); // 关闭现在所有的 IE 窗口,并打开一个新窗口
WebBrowser.execWB(4, 1); // 保存网页
WebBrowser.execWB(6, 1); // 打印
WebBrowser.execWB(7, 1); // 打印预览
WebBrowser.execWB(8, 1); // 打印页面设置
WebBrowser.execWB(10, 1); // 查看页面属性
WebBrowser.execWB(15, 1); // 撤销
WebBrowser.execWB(17, 1); // 全选
WebBrowser.execWB(22, 1); // 刷新
WebBrowser.execWB(45, 1); // 关闭窗体无提示
在打印页面时,有时只需要打印网页中的部分内容。这时可以将要打印的内容以框架的形式进行显示,然后用 Window 对象的 print 方法打印框架。
在打印页面中的框架时,首先需要将要打印的框架获得焦点,可以用内置变量 parent 来实现。
内置变量 parent 指的是包含当前分割窗口的父窗口。也就是在一窗口内如果有分割窗口,而在其中一个分割窗口中又包含着分割窗口,则第 2 层的分割窗口可以用 parent 变量引用包含它的父分割窗口。
语法格式如下:
parent.mainFrame.focus();
参数 mainFrame 表示框架的名称。
设置页眉和页脚。
设置页眉和页脚主要是通过 WshShell 对象的相关方法实现的。 WshShell 对象是 WSH ( WSH 是 Windows Scripting Host 的缩写,内嵌于 Windows 操作系统中的脚本语言工作环境)的内建对象,主要负责程序的本地运行、处理注册表、创建快捷方式、获取系统文件夹信息及处理环境变量等工作。
设置页眉页脚主要应用了 WshShell 对象的 RegWrite 方法。 RegWrite 方法用于在注册表中设置指定的键或值。
语法格式如下:
WshShell.RegWrite(strName,anyValue[,strType])
strName :用于指定注册表的键或值。若 strName 以一个反斜杠(在 JavaScript 中为 \ )结束,则该方法设置键,否则设置值。 strName 参数必须以根键名 HKEY_CURRENT_USER 、 HKEY_LOCAL_MACHINE 、 HKEY_CLASSES_ROOT 、 HKEY_USERS 或 HKEY_CURRENT_CONFIG 开头。
anyValue :用于指定注册表的键或值的值。当 strType 为 REG_SZ 或 REG_EXPAND_SZ 时, RegWrite 方法自动将 anyValue 转换为字符串。若 strType 为 REG_DWORD ,则 anyValue 被转换为整数。若 strType 为 REG_BINARY ,则 anyValue 必须是一个整数。
strType :用于指定注册表的键或值的数据类型。 RegWrite 方法支持的数据类型为 REG_SZ 、 REG_EXPAND_SZ 、 REG_DWORD 和 REG_BINARY 。若为其它数据类型被作为 strType 传递, RegWrite 返回 E_INVALIDARG 。
在打印页面时,可以利用 CSS 样式中的 page-break-before (在对象前分页)或 page-break-after (在对象后分页)属性进行分页打印,并利用 <thead>
和
<tfoot>
标记在打印的每一个页面中都显示表头和表尾。
<thead>
标记:用于设置表格的表头。
<tfoot>
标记:用于设置表格的表尾。
page-break-after 属性:该属性在打印文档时发生作用,用于进行分页打印,但是对于 和 <hr>
标记不起作用。
语法格式如下:
page-break-after : auto|always|avoid|left|right|null
在 JavaScript 中实现文件操作功能,主要是依靠 FileSystemObject 对象。该对象是用来创建、删除和获得有关信息,以及通常用来操作驱动器、文件夹和文件的方法和属性。
要想对文件进行相应的操作,必须对 FileSystemObject 对象进行实例化,也就是动态创建 FileSystemObject 对象。
语法格式如下:
fso = new ActiveXObject('Scripting.FileSystemObject');
参数 fso 是 FileSystemObject 对象的一个实例。
在动态实例化 FileSystemObject 对象后,便可以用实例化变量 fso 对 Drive 对象、 Drives 集合、 File 对象、 Files 集合、 Folder 对象、 Folders 集合和 TextStream 对象进行相应的操作。
GetAbsolutePathName 方法根据提供的路径返回明确完整的路径。也就是说,如果路径提供了从指定驱动器的根开始的完整的引用,那么它就是明确和完整的。如果路径指定的是映射驱动器的根文件夹,那么完整的路径将只能由一个路径分隔符" \ "结束。
语法格式如下:
object.GetAbsolutePathName(pathspec);
object :必选, FileSystemObject 对象的名称。
pathspec :必选,要变为明确完整路径的路径说明。
GetBaseName 方法将以字符串的形式返回指定路径中最后成分中的基本名称,不包含文件扩展名。
语法格式如下:
object.GetBaseName(path);
object :必选, FileSystemObject 对象的名称。
path :必选,返回其最后成分中的基本名称的指定路径。当路径与 path 参数不匹配时, GetBaseName 方法返回长度为零的空字符串。
注意 GetBaseName 方法只作用于所提供的 path 字符串。它不试图解析路径,也不检查指定路径是否存在。该方法所获取的最后成分的基本名称并不一定是文件名,也可以是文件夹的名称。
该方法根据指定路径返回包含驱动器名称的字符串。
语法格式如下:
object.GetDriveName(path);
object :必选, FileSystemObject 的名称。
path :必选,路径说明,将根据其中成分返回驱动器名称。
注意 GetDriveName 方法不试图解析路径,也不检查指定路径是否存在。该方法无法确定驱动器时,将返回一个指定字符串。
该方法用于返回指定路径中驱动器的 Drive 对象。
语法格式如下:
object.GetDrive(drivespec);
object :必选, FileSystemObject 的名称。
drivespec :必选,该参数可以是驱动器号 (c) 、带冒号的驱动器号 (c:) 、带冒号和路径分隔符的驱动器号 (c:) ,或者任意网络共享的说明 (\computer2\share1) 。
GetExtensionName 方法用于返回指定路径中最后成分扩展名的字符串。
语法格式如下:
object.GetExtensionName(path);
object :必选, FileSystemObject 的名称。
path :必选,返回其扩展名的指定路径。
注意 对于网络驱动器,根目录" \ "将被认为是一个成分。如果没有和 path 参数匹配的成分,那么 GetExtensionName 方法将返回长度为零的空字符串。
GetFileName 方法返回指定路径的最后成分,但指定的路径不能只是驱动器说明,也可以是共享路径。
语法格式如下:
object.GetFileName(pathspec);
GetParentFolderName 方法根据指定路径中的最后成分返回其父文件夹名称的字符串。
语法格式如下:
object.GetParentFolderName(path);
注意 GetParentFolderName 方法只作用于所提供的 path 字符串。它不试图解析路径,也不检查指定路径是否存在。该方法所获取的最后成分没有父文件夹时,将返回长度为零的空字符串。
该方法返回指定的特殊文件夹对象。
语法格式如下:
object.GetSpecialFolder(folderspec);
该方法返回一个随机产生的临时文件或文件夹名,有助于执行那些需要临时文件或文件夹的操作。
语法格式如下:
object.GetTempName();
参数 object 为必选,表示 FileSystemObject 的名称。
说明 GetTempName 方法并不创建文件。它只提供一个临时文件名。可以通过 CreateTextFile 来创建文件。
Drive 对象负责收集系统中的物理或逻辑驱动器资源内容,如驱动器的共享名和有多少可用空间。在使用该对象时,不一定非要把驱动器实物地连接到系统上,也可以通过网络在逻辑上连接起来。需要说明的是,这里所说的驱动器不一定非是硬盘,也可以是 RAM 磁盘等。
使用 Drive 对象来获取驱动器的相关信息,必须创建 Drive 对象。该对象是通过 FileSystemObject 对象的 GetDrive 方法来创建的。
Drive 对象的属性。
向用户返回指定驱动器或网络共享上的可用空间的大小,只读。
object.FreeSpace;
说明 典型情况中,由 FreeSpace 属性返回的值和由 AvailableSpace 属性返回的值是相同的。对于支持 quotas 的计算机系统来说,两者有可能不同。
如果指定驱动器已就绪,则返回 true ;否则返回 false 。
object.IsReady;
说明 对于可移动媒体的驱动器和 CD-ROM 驱动器来说, IsReady 只有在插入了适当的媒体并已准备好访问时才返回 true 。
以字节为单位返回驱动器或网络共享的所有空间大小。
object.TotalSize;
返回一个值,表示所指定驱动器的类型。
object.DriveType;
返回连续十进制数字,用于唯一标识磁盘卷。
object.SerialNumber;
说明 可以使用 SerialNumber 属性来确保在带有可移动媒体的驱动器中插入正确的磁盘。
返回所指定的驱动器或网络共享上可用的空间的大小。
object.AvailableSpace;
返回指定驱动器所使用的文件系统的类型。
object.FileSystem;
可能的返回类型包括 FAT 、 NTFS 和 CDFS 。
返回指定文件、文件夹或驱动器的路径。
object.Path 。
驱动器字母后不包括根驱动器。例如, C 驱动器的路径是 C: ,而不是 C:\ 。
返回一个 Folder 对象,表示指定驱动器的根文件夹,只读。
object.RootFolder;
可以通过返回的 Folder 对象来访问驱动器上的所有文件和文件夹。
返回指定驱动器的网络共享名。
object.ShareName;
如果 object 不是网络驱动器,那么 ShareName 属性将返回长度为零的字符串 ("") 。
设置或返回指定驱动器的卷名,读 / 写。
object.VolumeName[=newname]