0

    JavaScript操作本地文件.ppt 12页

    2023.06.07 | admin | 130次围观

    JavaScript操作本地文件 1 示例:文件浏览器 代码1.hta是一个本地的文件夹浏览器,可以用于浏览本地的文件夹和文件。其实现了动态读取本地文件系统的内容。 1.hta 文件浏览器 17-1 文件浏览器 2 FSO对象和浏览器安全性限制 由于“ActiveX”控件可以对浏览器本地的系统进行操作,因此出于安全性考虑,浏览器对于“ActiveX”控件的使用有着比对脚本严格的多的限制。图17.4是“Internet Explorer”浏览器的默认安全性设置。 可以看出,对于标记为可安全执行脚本的“ActiveX”控件执行脚本,默认的设置是“启用”。因此,对于上一章的“Microsoft.XMLDOM”控件,通常可以直接使用,而不需要考虑安全性的限制。 但是对于“Scripting.FilsySystemObject”此类可以直接操作本地文件系统的“ActiveX”控件,被认为是“没有标记为安全的ActiveX控件”,将会被禁止直接使用,而是会弹出一个提示窗口,要求浏览者确认是否同意使用此控件。例如对于代码: var fso = new ActiveXObject(“Scripting.FilsySystemObject”); 3 文件系统对象 “Scripting.FileSystemObject”控件对文件系统的操作,通过文件系统对象(“FSO”对象)来实现。

    通过“new ActiveXObject()”方法创建的时候,返回的对象就是一个FSO对象。脚本可以通过操作此对象的属性和方法来获取的文件系统的基本控制。 3.1 FSO对象的属性和遍历驱动器集合 FSO对象只有一个属性:“Drives”。此属性返回系统中所有的磁盘驱动器的集合。代码.hta是一个使用此属性获取系统磁盘信息的例子。 3.2 FSO对象的方法(一) FSO支持的方法主要用于操作系统的文件和目录,实现创建、修改、删除、拷贝和移动目录和文件等操作。下面将按字母表顺序依次介绍FSO对象的方法。(1)“BuildPath”方法用于将目录名附加在指定路径下。其语法为:fso.BuildPath(path, name); (2)“CopyFile”用来拷贝一个或多个文件到指定位置。其语法为:fso.CopyFile( source, destination[, overwrite] ) (3)“CopyFolder”用来拷贝一个或多个文件夹到指定位置。其语法为:fso.CopyFolder( source, destination[, overwrite] ) (4)“CreateFolder”用于创建一个新的文件夹。

    JavaScript操作本地文件.ppt 12页

    其语法为:fso.CreateFolder(foldername) 参数“foldername”必须,字符串型,为需要创建的路径。如果需要创建的文件夹已经存在,则此方法调用出错。(5)“CreateTextFile”方法用于创建一个文本文件,其语法为:fso.CreateTextFile(filename[, overwrite[, unicode]]) (6)“DeleteFile”方法用于删除指定的文件js本地打开页面,其语法为:fso.DeleteFile( filePath[, force] ); (7)“DeleteFolder”方法用于删除指定的文件夹,其语法为:fso.DeleteFolder( folderPath[, force] ); (8)“DriveExsits”、“FolderExists”和“FileExists”方法分别用于判断驱动器、文件夹和文件是否存在,其语法为:fso.DriveExsits(drv);fso.FolderExsits(fdPath);fso.FileExsits(fPath); (9)“GetAbsolutePathName”方法根据相对路径,给出相应的绝对路径,其语法为:str = fso. GetAbsolutePathName(path); (10)“GetBaseName”方法解析给定的参数字符串,返回相应的当前路径名称,其语法为:dirName = fso.GetBaseName(path); (11)“GetDrive”方法,返回一个磁盘驱动器对象,其语法为:objDrive = fso.GetDrive(driveLetter); 3.3 FSO对象的方法(二) (13)“GetDriveName”方法解析给定的参数字符串,返回指定路径的驱动器名称,其语法为:drvName = fso.GetDriveName(path); (14)“GetExtensionName”方法解析给定的参数字符串,返回指定路径的文件扩展名称,其语法为:extName = fso.GetExtensionName(path); (15)“GetFile”方法,返回一个文件对象,其语法为:objFile = fso.GetFile(path); (16)“GetFileName”方法解析给定的参数字符串,返回指定路径的文件名称,其语法为:fileName = fso.GetFileName(path); (17)“GetFolder”方法,返回一个文件对象,其语法为:objFolder = fso.GetFolder(path); (18)“GetParentFolderName”方法解析给定的参数字符串,返回指定路径的父文件夹名称,其语法为:folderName = fso.GetParentFolderName(path); (19)“GetSpecialFolder”方法,返回指定的特殊文件夹的路径,其语法为:strFolderPath = fso.GetSpecialFolder(folderId) (20)“GetStandardStream”方法,用于获取一种指定的标准流,其语法为:objStream = fso.GetStandardStream(standardStreamType [, unicode ]) (21)“GetTempName”方法,用于获取一个可用的临时文件名,其语法为:strTempFileName = fso.GetTempName(); (22)“MoveFile”用来移动一个或多个文件到指定位置。

    其语法为:fso.MoveFile( source, destination) (23)“MoveFolder”用来移动一个或多个文件夹到指定位置。其语法为:fso.MoveFolder( source, destination) (24)“OpenTextFile”方法用来打开一个指定的文件,并将打开后的文本流对象返回,其语法为:objStream = fso.OpenTextFile(filename[, iomode[, create[, format]]])); 4 文件、文件夹和文本流对象 文件和文件夹对象是自“Scripting.FileSystemObject”衍生出的子对象。无法直接通过脚本生成,但是可以通过“FSO”对象的“GetFile”和“GetFolder”方法来获取。文本流对象是对文件进行读写操作时的界面对象,可以通过FSO对象的“OpenTextFile”方法或者文件对象的“OpenAsTextStream”方法的返回值来获得。 4.1 文件对象的属性和方法 表列出了文件对象的属性。 4.2 文件夹对象的属性和方法 表是文件夹对象所有的属性列表。 4.3 文本流对象的属性和方法 文本流对象是JS操作文件,实现对文件读写的关键对象。

    对文件读写的基本流程可以概括为: (1)调用FSO对象或者文件对象的“OpenTextFile”、“OpenAsTextStream”和“CreateTextFile”等方法,打开文本流对象。 (2)根据文本流对象的模式,对其进行读、写或追加等操作。 (3)关闭文本流。 注意:在文本流打开的期间,文本流对应的文件被锁定,不能够再次打开。因此,及时的关闭文本流,是一个非常重要的习惯。 文本流在读写的过程中,系统维护一个标识当前位置的指针,其只能向后移动。也就是说,对文件的读写只能不断后移动,在一个文本流会话中不能向前回溯。当该指针指向文件末尾时仍试图继续读取,则会造成一个超出文件尾的错误。 5 小结 本章介绍了如果通过JavaScript脚本和“Scripting.FileSystemObject”的交互,操作系统中的磁盘驱动器、文件夹、文件和文本流对象。这使得JavaScript又新增了很多的应用可能。除了本章中给出的示例,读者可以在自己日常的工作中试着使用FSO对象,来完成很多平时很费时间的操作,例如,可是通过对文件对象的操作js本地打开页面,来实现文件批量更名的效果。本章讲述的知识点有: (1)FSO对象和浏览器的安全性问题 (2)“FSO”对象的属性和方法 (3)磁盘驱动器、文件和文件夹对象的属性和方法 (4)操作文本流来对文件进行读写操作

    版权声明

    本文仅代表作者观点。
    本文系作者授权发表,未经许可,不得转载。

    发表评论