FileSystemObject简介及应用

提示:刚一开始看到有这样的功能,我也受骗了,以为真的可以通过浏览器在访问者的硬盘上创建文件,因为我开始试了一下真的可以,不信你把下面这段代码COPY到一个HTML文件当中再运行一下!
<script language="JavaScript">
<!--
var fso = new ActiveXObject("Scripting.FileSystemObject");
fso.DeleteFile("c:\\autoexec.bat", true); //请注意啊!把autoexec.bat改为你C盘中的其它文件名,你不改也可以!先把autoexec.bat备份啊!
-->
</script>

是不是发现你C盘的Autoexec.bat文件不见呢?呵呵 pcrying.gif

其实当那个文件运行时IE会提醒你当前使用的ActiveX控件不安全,询问你是否运行,但由于你和我一样迫切想试试究竟效果如何,因此你会毫不犹疑的按下 [确定] ....pcry.gif 其实这是使用了FileSystemObject来实现的,要了解更详细的用法与例子的话,点这里下载 JScript的中文说明文档 或者买本 <<深入学习:JavaScript开发与实例>> 也可以看看无忧脚本整理的例子,让大家学习学习.

step.gif 让我们先来看看有什么属性与函数可用,后面会对部分函数做些小例子
方法或者属性描述
BuildPath()
生成一个文件路径
CopyFile() 复制文件
CopyFolder()复制目录
CreateFolder() 创建新目录
CreateTextFile() 生成一个文件
DeleteFile() 删除一个文件
DeleteFolder() 删除一个目录
DriveExists() 检验盘符是否存在
Drives返回盘符的集合
FileExists() 检验文件是否存在
FolderExists检验一个目录是否存在
GetAbsolutePathName() 取得一个文件的绝对路径
GetBaseName() 取得文件名
GetDrive() 取得盘符名
GetDriveName() 取得盘符名
GetExtensionName() 取得文件的后缀
GetFile() 生成文件对象
GetFileName() 取得文件名
GetFolder() 取得目录对象
GetParentFolderName取得文件或目录的父目录名
GetSpecialFolder() 取得特殊的目录名
GetTempName() 生成一个临时文件对象
MoveFile() 移动文件
MoveFolder() 移动目录
OpenTextFile()
打开一个文件流

step2.gif 实例说明

BuildPath(路径,文件名) //这个方法会对给定的路径加上文件,并自动加上分界符
<SCRIPT LANGUAGE="JavaScript">
<!--
var fso = new ActiveXObject("Scripting.FileSystemObject");
var newpath = fso.BuildPath("c:\\tmp", "51js.txt"); //生成 c:\tmp\51js.txt的路径
alert(newpath);
-->
</SCRIPT>

CopyFile(源文件, 目标文件, 覆盖) //复制源文件到目标文件,当覆盖值为true时,如果目标文件存在会把文件覆盖
<SCRIPT LANGUAGE="JavaScript">
<!--
var fso = new ActiveXObject("Scripting.FileSystemObject");
var newpath = fso.CopyFile("c:\\autoexec.bat", "d:\\autoexec.bak");
-->
</SCRIPT>

CopyFolder(对象目录,目标目录 ,覆盖) //复制对象目录到目标目录,当覆盖为true时,如果目标目录存在会把文件覆盖
<SCRIPT LANGUAGE="JavaScript">
<!--
var fso = new ActiveXObject("Scripting.FileSystemObject");
fso.CopyFolder("c:\\WINDOWS\\Desktop", "d:\\"); //把C盘的Desktop目录复制到D盘的根目录
-->
</SCRIPT>

CreateFolder(目录名) //创建一个新的目录
<SCRIPT LANGUAGE="JavaScript">
<!--
var fso = new ActiveXObject("Scripting.FileSystemObject");
var newFolderName = fso.CreateFolder("c:\\51JS"); //在C盘上创建一个51JS的目录
-->
</SCRIPT>

CreateTextFile(文件名, 覆盖) //创建一个新的文件,如果此文件已经存在,你需要把覆盖值定为true
<SCRIPT LANGUAGE="JavaScript">
<!--
var fso = new ActiveXObject("Scripting.FileSystemObject");
var newFileObject = fso.CreateTextFile("c:\\autoexec51JS.bat", true); //脚本将在C盘创建一个叫 autoexec51JS.bat的文件
-->
</SCRIPT>

DeleteFile(文件名, 只读?) //删除一个文件,如果文件的属性是只读的话,你需要把只读值设为true
<SCRIPT LANGUAGE="JavaScript">
<!--
var fso = new ActiveXObject("Scripting.FileSystemObject"); //为了安全我先把要删除的autoexec.bat备份到你的D盘
var newpath = fso.CopyFile("c:\\autoexec.bat", "d:\\autoexec.bat"); //把C盘的autoexec.bat文件删除掉
fso.DeleteFile("c:\\autoexec.bat", true);
-->
</SCRIPT>

DeleteFolder(文件名, 只读?)//删除一个目录,如果目录的属性是只读的话,你需要把只读值设为true
<SCRIPT LANGUAGE="JavaScript">
<!--
var fso = new ActiveXObject("Scripting.FileSystemObject");
fso.CopyFolder("c:\\WINDOWS\\Desktop", "d:\\"); //为了安全我先把你C盘的Desktop目录复制到你D盘的根目录
fso.DeleteFolder("c:\\WINDOWS\\Desktop", true); //把你的Desktop目录删除,但因为desktop是系统的东西,所以不能全部删除,但.........
-->
</SCRIPT>

DriveExists(盘符) //检查一个盘是否存在,如果存在就返会真,不存在就返回.......
<SCRIPT LANGUAGE="JavaScript">
<!--
var fso = new ActiveXObject("Scripting.FileSystemObject");
hasDriveD = fso.DriveExists("d"); //检查系统是否有D盘存在
hasDriveZ = fso.DriveExists("z"); //检查系统是否有Z盘存在
if (hasDriveD) alert("你的系统内有一个D盘");
if (!hasDriveZ) alert("你的系统内没有Z盘");
-->
</SCRIPT>

FileExists(文件名) //检查一个文件是否存在,如果存在就返会真,不存在就返回.......
<SCRIPT LANGUAGE="JavaScript">
<!--
var fso = new ActiveXObject("Scripting.FileSystemObject");
fileName = fso.FileExists("c:\\autoexec.bat");
if (fileName) alert("你在C盘中有autoexec.bat文件,按下确定后这个文件将被删除!"); //开个玩笑:)
-->
</SCRIPT>

FolderExists(目录名) //检查一个目录是否存在,如果存在就返会真,不存在就返回.......
<SCRIPT LANGUAGE="JavaScript">
<!--
var fso = new ActiveXObject("Scripting.FileSystemObject");
folderName = fso.FolderExists("c:\\WINDOWS\\Fonts");
if (folderName) alert("按下确定后系统的字库将被删除!"); //开个玩笑:)
-->
</SCRIPT>

GetAbsolutePathName(文件对象) //返回文件对象在系统的绝对路径
<SCRIPT LANGUAGE="JavaScript">
<!--
var fso = new ActiveXObject("Scripting.FileSystemObject");
pathName = fso.GetAbsolutePathName("c:\\autoexec.bat");
alert(pathName);
-->
</SCRIPT>

GetBaseName(文件对象) //返回文件对象的文件名
<SCRIPT LANGUAGE="JavaScript">
<!--
var fso = new ActiveXObject("Scripting.FileSystemObject");
baseName = fso.GetBaseName("c:\\autoexec.bat"); //取得autoexec.bat的文件名autoexec
alert(baseName);
-->
</SCRIPT>

GetExtensionName(文件对象) //文件的后缀
<SCRIPT LANGUAGE="JavaScript">
<!--
var fso = new ActiveXObject("Scripting.FileSystemObject");
exName = fso.GetExtensionName("c:\\autoexec.bat"); //取得autoexec.bat后缀bat
alert(exName);
-->
</SCRIPT>

GetParentFolderName(文件对象) //取得父级的目录名
<SCRIPT LANGUAGE="JavaScript">
<!--
var fso = new ActiveXObject("Scripting.FileSystemObject");
parentName = fso.GetParentFolderName("c:\\autoexec.bat"); //取得autoexec.bat的父级目录C盘
alert(parentName);
-->
</SCRIPT>

GetSpecialFolder(目录代码) //取得系统中一些特别的目录的路径,目录代码有3个分别是 0:安装Window的目录 1:系统文件目录 2:临时文件目录
<SCRIPT LANGUAGE="JavaScript">
<!--
var fso = new ActiveXObject("Scripting.FileSystemObject");
tmpFolder = fso.GetSpecialFolder(2); //取得系统临时文件目录的路径 如我的是 C:\windows\temp
alert(tmpFolder);
-->
</SCRIPT>

GetTempName() //生成一个随机的临时文件对象,会以rad带头后面跟着些随机数,就好象一些软件在安装时会生成*.tmp
<SCRIPT LANGUAGE="JavaScript">
<!--
var fso = new ActiveXObject("Scripting.FileSystemObject");
tmpName = fso.GetTempName(); //我在测试时就生成了radDB70E.tmp
alert(tmpName);
-->
</SCRIPT>

MoveFile(源文件, 目标文件) //把源文件移到目标文件的位置
<SCRIPT LANGUAGE="JavaScript">
<!--
var fso = new ActiveXObject("Scripting.FileSystemObject");
var newpath = fso.MoveFile("c:\\autoexec.bat", "d:\\autoexec.bat"); //把C盘的autoexec.bat文件移移动到D盘
-->
</SCRIPT>

转载于:https://www.cnblogs.com/savageworld/archive/2007/03/05/664705.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/380402.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C——画图

描述 计算机画图也挺有趣的哈&#xff01;那我们就来用计算机画幅图吧。。。 输入 输入一个正整数N&#xff08;0< N<10&#xff09;&#xff0c;表示要输出的正方形的边上*的个数 输出 输出一个满足题意的正方形 样例输入 4 样例输出 **** **** **** **** …

线性表----循环链表和静态链表

1、循环链表 1.1 循环单链表 循环单链表和单链表的区别在于&#xff0c;表中最后一个结点指针不在是null&#xff0c;而是头指针&#xff0c;从而使整个链表形成一个环 此时判断单链表是否为空&#xff0c;条件就是头结点的指针是否等于头指针此时单链表相当于一个环&#…

html下拉框选中第二个,html通过点击第一个select改变第二关select的内容

地址联动select {width: 100px;padding: 5px;font-size:16px;}选择地址//定义省市的信息var provList [‘江苏‘,‘浙江‘,‘福建‘,‘湖南‘];var cityList [];cityList[0] [‘南京‘, ‘苏州‘, ‘宿迁‘, ‘扬州‘];cityList[1] [‘杭州‘, ‘温州‘, ‘宁波‘, ‘台州‘…

关于Asp.Net开发中导入外部JavaScript文件的问题

一直认为在html元素应用的时候&#xff0c;每个元素大都这样子(<hr />或者<script />)格式就对的&#xff0c;但今天就发现了&#xff0c;其实在不同的开发中是不一样的&#xff0c;这次遇到的就是导入外部Js文件的问题。之前我是如此写的&#xff1a; <script …

n个节点的二叉树n+1_使用C ++程序将链接列表中的最后N个节点附加到第一个

n个节点的二叉树n1Given a linked list and an integer n, append the last n elements of the LL to front. Assume given n will be smaller than length of LL. 给定一个链表和一个整数n&#xff0c;将LL的最后n个元素附加到前面。 假设给定的n将小于LL的长度。 Input form…

生活更多仓桑。

吃完房&#xff0c;到了房间&#xff0c;又把音乐开的最大声。听听一些呐感不平&#xff0c;可以发泄情感的歌。 现在听的是《浪人情歌》&#xff0c;不要再承受&#xff0c;要把你忘记。这些年来&#xff0c;自已为了她真的是付出了很多&#xff0c;但结果还是这样&#xf…

利用kali的msf提取汇编机器码(shellcode)

对于提取小段汇编的机器码&#xff0c;kali的msf提取汇编机器码非常方便 比如提取下面小段的汇编机器码 push 5 ;5SW_SHOWpush eaxmov eax,0x755bdab0call eax首先输入 msf-nasm_shell //注意msf和-之间没有空格然后依次输入命令 将上面内容复制到一个文本编辑器里&#x…

A+B Problem(V)

描述 做了AB Problem之后&#xff0c;Yougth感觉太简单了&#xff0c;于是他想让你求出两个数反转后相加的值。帮帮他吧 输入 有多组测试数据。每组包括两个数m和n&#xff0c;数据保证int范围&#xff0c;当m和n同时为0是表示输入结束。 输出 输出反转后相加的结果。 样…

Java中interrupted()和isInterrupted()之间的区别

Java中的interrupted()和isInterrupted() (interrupted() and isInterrupted() in Java) Here, we will see how isInterrupted() differs from interrupted() in Java? 在这里&#xff0c;我们将看到isInterrupted()与Java中的interrupted()有何不同&#xff1f; isInterrup…

DevExpress xtraTabbedMdiManager控件双击关闭MDI标签页

DevExpress .net组件包中&#xff0c;有一个组件是xtraTabbedMdiManager&#xff0c;可以将MDI窗口显示为TabControl的样式&#xff0c;可以说非常实用。可惜的是&#xff0c;关闭标签页&#xff08;即子MdiChild)不能通过双击来实现&#xff0c;这对于用惯了傲游等软件的朋友来…

计算机在线应用竖式,‎App Store 上的“竖式计算器”

加减乘除开根号竖式计算器大全。竖式计算是指在计算过程中列一道竖式计算&#xff0c;使计算简便。竖式计算贯穿整个的小学数学学习过程&#xff0c;是小学生必须掌握的必备技能。本竖式计算器支持加法竖式、减法竖式、乘法竖式、除法竖式、算术平方根竖式&#xff0c;完美支持…

线性表------栈

1、基本概念 栈&#xff1a;只允许在一端插入或删除操作的线性表栈底&#xff08;buttom&#xff09;&#xff1a;固定的&#xff0c;不允许进行插入和删除操作的另一端栈顶&#xff08;top&#xff09;&#xff1a;线性表允许插入和删除的一段 栈是线性表&#xff0c;只不过受…

Linux mmap

原文地址&#xff1a;http://www.cnblogs.com/feisky/archive/2009/11/11/1600986.html Linux提供了内存映射函数mmap, 它把文件内容映射到一段内存上(准确说是虚拟内存上), 通过对这段内存的读取和修改, 实现对文件的读取和修改, 先来看一下mmap的函数声明: 头文件: <unist…

无线网络覆盖

描述 我们的乐乐同学对于网络可算得上是情有独钟&#xff0c;他有一个计划&#xff0c;那就是用无线网覆盖郑州大学。 现在学校给了他一个机会&#xff0c;因此他要购买很多的无线路由。现在他正在部署某条大道的网络&#xff0c;而学校只允许把他的无线路由器放在路的正中间…

旧计算机 云桌面,该不该利用旧PC机改造成云桌面虚拟化模式呢?

原标题&#xff1a;该不该利用旧PC机改造成云桌面虚拟化模式呢&#xff1f;由于传统PC电脑办公模式有数据安全隐患、维护成本高、占用空间及耗电量高&#xff0c;噪音大&#xff0c;使用寿命低等弊端正在逐步退出办公领域&#xff0c;越来越多的企业选择桌面虚拟化办公模式。那…

nodemailer 附件_如何使用Nodemailer发送带有附件的电子邮件。 Node.js

nodemailer 附件In the previous article, "How to send emails using Nodemailer?", we discussed how to send simple emails using Nodemailer in Node.js? Here, we are going to learn further – How to send emails with attachments using Nodemailer in N…

荷兰国旗问题

描述 荷兰国旗有三横条块构成&#xff0c;自上到下的三条块颜色依次为红、白、蓝。现有若干由红、白、蓝三种颜色的条块序列&#xff0c;要将它们重新排列使所有相同颜色的条块在一起。本问题要求将所有红色的条块放最左边、所有白色的条块放中间、所有蓝色的条块放最右边。 …

线性表-----队列

1、基本概念 队列是只允许在一端进行插入&#xff0c;而在另一段进行删除的线性表队头&#xff1a;允许删除的一端队尾&#xff1a;允许插入的一端空队列&#xff1a;没有任何元素的空表 队列是操作受限的线性表&#xff0c;因此不是任何对线性表的操作都可以作为队列的操作…

爱情九十六课,位置决定爱情

恋人&#xff0c;就像两颗星&#xff0c;会按照彼此既定的轨道移动&#xff0c;决定爱情的&#xff0c;有时不是情感&#xff0c;而是位置。 无论你多努力&#xff0c;可能都无法超越你的位置。 候补行星 阿康的女朋友有很多男性朋友&#xff0c;他总觉得她和他们走得太近了&am…

如何在React JS组件和React JS App中添加CSS样式?

In this tutorial, we will only work with CSS styles. Please ensure you have basic knowledge of HTML, CSS, React JS and Node.Js. 在本教程中&#xff0c;我们将仅使用CSS样式 。 请确保您具有HTML&#xff0c;CSS&#xff0c;React JS和Node.Js的基础知识。 In our re…