<SCRIPT>
function ShowFolderList(folderspec)
{
var fso, f, fc, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.GetFolder(folderspec);
fc = new Enumerator(f.SubFolders);
s = "";
for (; !fc.atEnd(); fc.moveNext())
{
s += fc.item();
s += "<br>";
} document.write(s);
}
</SCRIPT>
<input type="button" onclick=ShowFolderList('c:\\temp')>
跟我在网上找到的资料一样,可惜还是出错.行:5
字符:4
代码:0
错误:Automation 服务器不能创建对象
在ie工具internet选项安全自定义级别中
不要禁止activex
如果没有先加上多加上几个
我是用c:\test的.
下面只有一个test.txt
function ShowFolderList(folderspec)
{
var fso, f, fc, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.GetFolder(folderspec);
fc = new Enumerator(f.Files);
s = "";
for (; !fc.atEnd(); fc.moveNext())
{
s += fc.item();
s += "<br>";
} document.write(s);
}
</SCRIPT>
<input type="button" value="test" onclick=ShowFolderList('c:\\test')>
这样就可以列出目录下的文件了.大侠是厉害的.可能没看清楚是"文件"还是"文件夹"而已.
Set fso = CreateObject("Scripting.FileSystemObject")2 在JScript中创建,方法如下:var fso = new ActiveXObject("Scripting.FileSystemObject");在VBscript中使用CreateObject函数,语法
CreateObject(servername.typename )
servername是应用程序名称,typename是要创建的对象类型或类。
在JScript中使用ActiveXObject对象,所以前面要有new关键字。语法
new ActiveXObject(servername.typename)
ActiveXObject对象没有什么方法和属性,其功能与VB的CreateObject函数一样,就是启用并返回 Automation 对象的引用。二 FileSystemObject对象的属性FileSystemObject对象只有一个属性Drives,它返回一个驱动器集合,包含了本地机器上所有可用的 Drive 对象。可移动媒体的驱动器不需要插入媒体就可以出现在 Drives 集合中。目标任务1 显示可用的驱动器列表。代码
function ShowDriveList(){
var fso, s, n, e, x;
fso = new ActiveXObject("Scripting.FileSystemObject");
e = new Enumerator(fso.Drives);
s = "";
for (; !e.atEnd(); e.moveNext()){
x = e.item();
s = s + x.DriveLetter;
s += " - ";
if (x.DriveType == 3)
n = x.ShareName;
else if (x.IsReady)
n = x.VolumeName;
else
n = "[驱动器未就绪]";
s += n + "<br>";
}
return(s);
}
document.write (ShowDriveList());代码注释对象e是利用驱动器集合创建了一个枚举对象,它的每个元素是一个驱动器,因此可以使用Drive对象的属性和方法。这里用到了atEnd()-列表结束,moveNext()-指向下一个驱动器,item()-得到当前驱动器,DriveLetter-驱动器字母,DriveType-驱动器类型(硬盘、CD-ROM等),ShareName(网络驱动器名),IsReady-驱动器是否就绪,VolumeName-磁盘卷号。
Set MyFile = fso.CreateTextFile("c:\testfile.txt", True) ’创建,如文件存在就删除它
Set f = fso.OpenTextFile("c:\testfile.txt", ForWriting, True) '打开在JS中,var a = fso.CreateTextFile("c:\\testfile.txt", true);
var a = fso.OpenTextFile("c:\\testfile.txt", ForAppending, false); //不创建新文件注意,这在两种语言中没有什么差别,只是VB的语法规定创建对象要用Set语句,而JS中var也可用于说明对象。重要的是下面要讨论的打开与创建这两种方法的功能和语法结构上的差别。CreateTextFile方法的语法形式:fso.CreateTextFile(Filename,[Overwrite],[Unicode]) Filename 包含文件路径名的字符串,可以是文件的全路径名,包括驱动器名和目录名,或者也可以只是文件名,如果只包含文件名的话,文件将被创建在站点的根目录下。 Overwrite 布尔量,设置成False时在创建新文件时不删除已存在的同名文件,并报告错误。该参数是可选的,如果没有赋值系统默认为true,就删除已存在的同名文件。 Unicode 可选参数。布尔值指明是否以Unicode或ASCII 文件格式创建文件。如果以Unicode 文件格式创建文件,则该值为True;如果以ASCII文件格式创建文件,则该值为False。如果省略此部分,则假定创建ASCII文件。 OpenTextFile 方法的语法如下 : fso.OpenTextFile(Filename,[IOmode],[Create],[Format]) Filename 必须的变量,同 CreateTextFile 的filename 。 IOmode 可选的常量,表示读写模式。取值为下列两个常数之一ForReading=1或ForAppending=8,如果mode为1,文件以只读方式打开,如果为8,则文件以追加的方式打开。 Create 可选的布尔量,如果其值为 True,当文件不存在时就自动创建一个空的文件。如果为 False,就会在文件没找到时产生一个出错信息,其默认值是False,建议将其设为True,以避免在打开文件时检查是否出错,就可能会中断运行。 Format 可选,表示文件的格式。可以选择三种值 -2、-1、和0,分别对应于:系统缺省、unicode 和 ASCII。
--------------------------------------------------------------------------------目标任务2 在C盘根目录上生成一个文本文件Mytest.txt,其中包含自动写入的若干行。function textwrite() {
var fs = new ActiveXObject("Scripting.FileSystemObject");
var Overwrite = true;
var ForAppending=8 ;
var Forwrite= -2 ;
var Unicode = false ;
var path = "c:\\";
var filename="mytest.txt";
var mytext = fs.CreateTextFile(path +filename,Overwrite) ;
var strings = new Array(5);
var D = new Date();
strings[0]="本文件是由程序自动生成的";
strings[1]="Today is " +D.getVarDate();
strings[2]="今天是" + D.getYear() + "年" + D.getMonth()+ "月" + D.getDay()+"日" ;
strings[3]="现在时间是 " +D.getHours() +":" + D.getMinutes();
strings[4]="本文件的路径是" + path +filename;
for (i=0 ;i<5;i++)
mytext.writeline(strings[i]) ;
mytext.close() ;
alert("文件" + filename +" 已经生成");
}代码注释创建文件mytext时,IOmode 用verwrite=true,如果文件存在时原有内容将被清除。说明 在第一次运行本例程以前,先运行一次目标任务3,以便观看文件不存在的情形。运行时如果出现警告“可能不安全,是否允许运行?”,您尽管回答“是”。因为有写盘操作,这是这种不安全。目标任务3 读出并显示目标任务2建立的文件。function textRead() {
var fs = new ActiveXObject("Scripting.FileSystemObject");
var Overwrite = true;
var ForAppending=8 ;
var ForReading= 1 ;
var Unicode = false ;
var path = "c:\\";
var filename="mytest.txt";
var mytext = fs.OpenTextFile(path +filename,ForReading, false) ;
var ss="" ;
document.write(mytext.ReadAll()) ;
mytext.close() ;
mytext = fs.OpenTextFile(path +filename,ForReading, false) ;
document.write ("<p> 下面用ReadLine方法读出 <p>");
ss = mytext.ReadLine() ;
document.write (ss+"<br>");
mytext.skipLine();
do
document.write (mytext.ReadLine());
while( !mytext.AtEndOfStream);
mytext.close() ;
}代码注释打开文件使用了ForReading只读模式,建议读者把它改为ForAppending,多次运行它以观看效果。本例程两次读出全文。第一次用ReadAll,第二次是逐行读出。可以看出,READ方法不能得到换行符。因此,如果需要的话,您只能自行插入换行符。第一次读完后关闭文件。因为没有提供移动指针到头的方法。
http://community.csdn.net/Expert/topic/4739/4739017.xml?temp=.162594