应该可以,下面是一段用JavaScript代码实现读取文件的方法,对你应该有参考意义!function readFile()
{
var filePath = document.frm.newFile.value;
fileObj = new File("D:\mytest\myTest.txt");
data = fileObj.open('w');
while(fileObj.eof())
{
document.write(data.read(1))
}
fileObj.close();
}
{
var filePath = document.frm.newFile.value;
fileObj = new File("D:\mytest\myTest.txt");
data = fileObj.open('w');
while(fileObj.eof())
{
document.write(data.read(1))
}
fileObj.close();
}
输入输出方式iomode 参数可取1,2,3三种值:
1=ForReading 以只读方式打开文件。 不能写这个文件。
2=ForWriting 以写方式打开文件。 如果存在同名的文件,那么它以前的内容将被覆盖。
8=ForAppending 打开文件并从文件末尾开始写。
这与方法是一样的。
文件格式 参数format可取下列三种值(-2,-1,0)之一:
TristateUseDefault -2 使用系统默认值打开文件。
TristateTrue -1 以 Unicode 方式打开文件。
TristateFalse 0 以 ASCII 方式打开文件。
说明;ForReading等符号常量只能用于VB,在JS中要使用必须自行预设。iomode的缺省值是2,覆盖。 二 File对象的属性Attributes 设置或返回文件或文件夹的属性。attributes 可以是下列各值或者这些值的任意逻辑组合:常数 值 描述
Normal 0 普通文件
ReadOnly 1 只读文件
Hidden 2 隐藏文件
System 4 系统文件
Volume 8 磁盘卷标。只读。
Directory 16 文件夹或目录,只读。
Archive 32 文件在上次备份后已经修改。
Alias 64 链接或者快捷方式。只读。
Compressed 128 压缩文件。只读。 DateCreated 指定文件或文件夹的创建日期和时间。
DateLastAccessed 最后访问指定文件或文件夹的日期和时间。只读。 DateLastModified 最后修改指定文件或文件夹的日期和时间。只读。 Drive 指定文件或文件夹所在驱动器的驱动器号。只读。 Name 设置或返回指定文件或文件夹的名称。读/写。 ParentFolder 返回指定文件或文件夹的父文件夹对象。只读。 Path 返回指定文件、文件夹或驱动器的路径。 ShortName 返回短名称,这些短名称由需要以前的 8.3 命名规范的程序使用。 ShortPath 返回短路径名,这些短文件名由需要以前的 8.3 文件命名规范的程序使用。 Size 返回以字节为单位的指定文件或文件夹的大小。 Type 返回关于文件或文件夹类型的信息。 以上属性,对于Folder对象也都适用。目标例程1 文件的拷贝,OpenAsTextStream方法。function FileOpp() {
var fso, fdir,fname, SF;
fso = new ActiveXObject("Scripting.FileSystemObject");
fdir = fso.GetFolder("C:\\");
SF = fdir.SubFolders;
if (!fso.FileExists("$$$fdir" )) SF.Add("$$$fdir" );
if (!fso.FileExists("$$$fdir1")) SF.Add("$$$fdir1");
fdir = fso.GetFile("filename.txt");
var tf = fdir.OpenAsTextStream(1);do {
fname = tf.ReadLine();
if (fso.FileExists("C:\\"+fname))
fso.CopyFile("C:\\"+fname, "C:\\$$$fdir\\"+fname);
}
while(!tf.AtEndOfStream);
tf.close() ;
}
目标例程2 文件的移动、改名和删除。function FileOpp1() {
var fso, ff;
fso = new ActiveXObject("Scripting.FileSystemObject");
fso.MoveFile("C:\\$$$fdir\\CONFIG.WIN", "C:\\$$$fdir1\\CONFIG.WIN");
ff = fso.GetFile("C:\\$$$fdir\\config.sys");
ff.Move("C:\\$$$fdir\\config.old"); //改名
fso.DeleteFile("C:\\$$$fdir\\autoexec.bat");
ff = fso.GetFile("C:\\$$$fdir\\MSDOS.SYS");
ff.Attributes=0;
ff.Delete();
}
说明 先后运行例程1,2。例程1生成两个文件夹,在文件夹$$$fdir中拷贝得若干文件,由于各个电脑上的文件不一样,拷贝的结果是不一样的。运行完以后先观看一下结果。例程2把文件CONFIG.WIN移动到文件夹$$$fdir1中,有MOVE方法改名得config.old,用两种方法删除了文件autoexec.bat和MSDOS.SYS。del$$$用来删除例程1生成的文件夹,但由于其中包含只读文件和系统文件,可能会不能执行而报告“没有权限”。语句ff.Attributes=0;就是改变的文件属性,而使下一句的删除可执行。目标例程3 File对象的属性用法演示function FileProp() {
var fso, ff, ss="";
var fname = prompt("输入一路径文件名","c:\\$$$fdir\\config.old");
fso = new ActiveXObject("Scripting.FileSystemObject");
ff = fso.GetFile(fname);
ss += "文件名" + ff.Name +"\r\n";
ss += "类型为" + ff.Type+"\r\n";
ss += "属性值 = " + ff.Attributes +"\r\n";
ss += "文件大小 " + ff.Size +"B" +"\r\n";
ss += "最后访问日期 " + ff.DateLastAccessed +"\r\n";
ss += "最后修改日期 " + ff.DateLastModified +"\r\n";
ss += "Path= " + ff.Path+"\r\n";
ss += "Drive=" + ff.Drive+"\r\n";
ss += "父文件夹" + ff.ParentFolder+"\r\n";
ss += "短文件名=" + ff.ShortName +"\r\n";
ss += "短路径名=" + ff.ShortPath +"\r\n";
alert(ss); return;
}代码注释执行后显示的结果如下图所示。必须先执行了例1例2后才有config.old这文件。但本程序你也可以选择任何文件来观看文件信息。选不同文件来运行可观察到属性值的不同。Attributes 属性值给出的是数值,为了显示文字信息还需要稍加处理。除了Attributes 和 Name以外,其余都是只读的。从图中可以看出,日期数据是标准格式,实际给出的是日期的字符串,而不是Date对象。短文件名和短路径名中的大写是系统给出的,前几行的大小写由程序中的输入确定。为了把Attributes 属性值转化成文字信息,我们可以用下面的代码:function FileList() {
var fso, fdir, SF, ff, ss="";
function AttrInfo(attr){
var info,s="", a1,a2;
a1 = attr & 0xF0 ; a2 = attr & 0x0F ;
switch (a1) {
case 128:s = " 压缩文件";break;
case 64: s = " 链接或者快捷方式";break;
case 32: s = " 文件在上次备份后已经修改";break;
case 16: s = " 文件夹";break;
}
switch (a2) {
case 0: info = "normal"; break;
case 1: info = "R";break;
case 2: info = "H";break;
case 3: info = "RH";break;
case 4: info = "S";break;
case 5: info = "RS";break;
case 6: info = "HS";break;
case 7: info = "RHS";break;
case 8: info = "卷标号";break;
default:info = "不可识别";break;
}
return info + s ;
}目标例程3 显示C盘根文件夹的内容清单。function FileList() {
var fso, fdir, SF, ff, ss="";
function AttrInfo(attr){ ... }
fso = new ActiveXObject("Scripting.FileSystemObject");
fdir = fso.GetFolder("C:\\");
ss = "文件名 ";
ss += "文件类型 ";
ss += "属性";
ss += "大小 " ;
ss += "最后访问日期" ;
ss += "最后修改日期";
ss += "路径文件名" ;
ss += "父文件夹" ;
ss += "短文件名=";
ss += "短路径名=";
document.write (ss + "<br>");
SF = new Enumerator (fdir.Files);
for (ff= SF.moveFirst();SF.atEnd();SF.moveNext()) {
ff = SF.item();
ss += ff.Name +"\r\n";
ss += ff.Type+"\r\n";
ss += AttrInfo(ff.Attributes) +"\r\n";
ss += ff.Size +"B" +"\r\n";
ss += ff.Path+"\r\n";
document.write (ss + "<br>");
}
return;
}
说明 只有把new Enumerator (fdir.Files)中的fdir.Files改为fdir.SubFolders,本程序就可用来显示子文件夹清单信息。
function WriteDemo(s1)
{
var fso, f, r
var ForReading = 1, ForWriting = 2;
fso = new ActiveXObject("Scripting.FileSystemObject")
f = fso.OpenTextFile("c:\\testfile.txt", ForWriting, true)
f.Write(s1);
f.Close();
document.all.txt.value="";
}
</script>
<textarea name=txt></textarea>
<input type=button value="Write" onclick="WriteDemo(document.all.txt.value)">