http://www.csdn.net/develop/Read_Article.asp?Id=12612
解决方案 »
- JavaScript如何获取iframe子框架的对象内容
- js 语句的意思
- 关于点击链接后跳转时刷新本页面
- jsp一个form如何将多个按钮提交到不同jsp,提交的同时传送本行的数据
- CSDN“无满意结帖”时,弹出一个小窗口,没有标题栏的,但主窗口变成灰灰色。这种效果怎么实现?
- 显示1图片5秒钟,5秒钟后图片消失,显示页面其它内容如何做,谢谢? 网页原代码给出了! 在线等
- 类似于IE地址栏的下拉列表,觉得酷就进来mark一下!
- 求高手 帮忙解密段代码
- 写了一段符合标准的对联广告代码,高兴。
- 怎样才能关闭showModalDialog打开的对话框?
- 急!怎么用JavaScript来处理滚动的图片,第一页与最后一页之间不能有空白的,必需连上!<在线等待>给分..
- 请问各位大虾,怎样通过Window对象的dialogArguments属性打开一个子窗口,并且在子母窗口之间传递参数怎么实现?
在新创建的对象上使用适当的方法。
访问对象的属性。
FSO 对象模型包含在 Scripting 类型库中,该库位于 Scrrun.dll 文件中。因而,要使用 FSO 对象模型,必须把 Scrrun.dll 放在 Web 服务器的适当系统目录中。创建 FileSystemObject 对象
首先,使用 CreateObject 方法来创建 FileSystemObject 对象。下面代码显示如何创建 FileSystemObject 实例: [VBScript]
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
[JScript]
var fso;
fso = new ActiveXObject("Scripting.FileSystemObject");
在这两个示例中,Scripting 是类型库的名字,而 FileSystemObject 则是想要创建的对象的名字。可以只创建 FileSystemObject 对象的一个实例,而不管试图创建另一个实例的次数。使用适当的方法
其次,使用 FileSystemObject 对象的适当方法。例如,要创建一个新的对象,则使用 CreateTextFile 或 CreateFolder (FSO 对象模型不支持驱动器的创建或删除)。要删除对象,则使用 FileSystemObject 对象的 DeleteFile 和 DeleteFolder 方法,或 File 和 Folder 对象的 Delete 方法。也可以使用适当的方法,来复制和移动文件与文件夹。注意 FileSystemObject 对象模型中的某些功能是多余的。例如,可以用 FileSystemObject 对象的 CopyFile 方法,也可以用 File 对象的 Copy 方法来复制文件。这两种方法功能是相同的;两种方法都能使编程灵活。
访问现有驱动器、文件和文件夹
要访问现有驱动器、文件或文件夹,则使用 FileSystemObject 对象中的适当的 "get" 方法: GetDrive
GetFolder
GetFile
若要访问现有文件:[VBScript]
Dim fso, f1
Set fso = CreateObject("Scripting.FileSystemObject")
Set f1 = fso.GetFile("c:\test.txt")
[JScript]
var fso, f1;
fso = new ActiveXObject("Scripting.FileSystemObject");
f1 = fso.GetFile("c:\\test.txt");
不要对新创建的对象使用 "get" 方法,因为 "create" 函数已经返回那个对象的一个句柄。例如,如果使用 CreateFolder 方法创建了一个新的文件夹,则不要使用 GetFolder 方法来访问它的属性,如 Name、Path、Size等等。只需设一个变量给 CreateFolder 函数,来获得新创建文件夹的句柄名,然后访问它的属性、方法和事件。若要为 CreateFolder 函数创建变量,请使用该语法:[VBScript]
Sub CreateFolder
Dim fso, fldr
Set fso = CreateObject("Scripting.FileSystemObject")
Set fldr = fso.CreateFolder("C:\MyTest")
Response.Write "Created folder: " & fldr.Name
End Sub
[JScript]
function CreateFolder()
{
var fso, fldr;
fso = new ActiveXObject("Scripting.FileSystemObject");
fldr = fso.CreateFolder("C:\\MyTest");
Response.Write("Created folder: " + fldr.Name);
}
访问对象的属性
一旦有了对象的句柄,就可以访问它的属性。例如,要获得特定文件夹的名字,首先创建该对象的一个实例,然后用适当的方法获得它的句柄(在这个例子中是 GetFolder 方法,因为该文件夹已经存在了)。用该代码来获得 GetFolder 方法的一个句柄:[VBScript]
Set fldr = fso.GetFolder("c:\")
[JScript]
var fldr = fso.GetFolder("c:\\");
现在,已经有了 Folder 对象的句柄,就可以检查它的 Name 属性了。[VBScript]
Response.Write "Folder name is: " & fldr.Name
[JScript]
Response.Write("Folder name is: " + fldr.Name);
要找出最后一次修改文件的时间,则使用下面的语法:[VBScript]
Dim fso, f1
Set fso = CreateObject("Scripting.FileSystemObject")
' 获得要查询的 File 对象。
Set f1 = fso.GetFile("c:\detlog.txt")
' 打印信息。
Response.Write "File last modified: " & f1.DateLastModified
[JScript]
var fso, f1;
fso = new ActiveXObject("Scripting.FileSystemObject");
// 获得要查询的 File 对象。
f1 = fso.GetFile("c:\\detlog.txt");
// 打印信息。
Response.Write("File last modified: " + f1.DateLastModified);
可以用 Drive 对象来获得有关各种驱动器的信息,这些驱动器是实物地或通过网络连接到系统上的。它的属性可以用来获得下面的信息内容: 驱动器的总容量,以字节为单位(TotalSize 属性)
驱动器的可用空间是多少,以字节为单位(AvailableSpace 或 FreeSpace 属性)
哪个号被赋给了该驱动器(DriveLetter 属性)
驱动器的类型是什么,如可移动的、固定的、网络的、CD-ROM 或 RAM 磁盘(DriveType 属性)
驱动器的序列号(SerialNumber 属性)
驱动器使用的文件系统类型,如 FAT、FAT32、NTFS 等等(FileSystem 属性)
驱动器是否可以使用(IsReady 属性)
共享和/或卷的名字(ShareName 和 VolumeName 属性)
驱动器的路径或根文件夹(Path 和 RootFolder 属性)
请考察示例代码,来领会如何在 FileSystemObject 中使用这些属性。Drive 对象的用法示例
使用 Drive 对象来收集有关驱动器的信息。在下面的代码中,没有对实际的 Drive 对象的引用;相反,使用 GetDrive 方法来获得现有 Drive 对象的引用(在这个例子中就是 drv)。下面示例示范了如何使用 Drive 对象: [VBScript]
Sub ShowDriveInfo(drvPath)
Dim fso, drv, s
Set fso = CreateObject("Scripting.FileSystemObject")
Set drv = fso.GetDrive(fso.GetDriveName(drvPath))
s = "Drive " & UCase(drvPath) & " - "
s = s & drv.VolumeName & "<br>"
s = s & "Total Space: " & FormatNumber(drv.TotalSize / 1024, 0)
s = s & " Kb" & "<br>"
s = s & "Free Space: " & FormatNumber(drv.FreeSpace / 1024, 0)
s = s & " Kb" & "<br>"
Response.Write s
End Sub
[JScript]
function ShowDriveInfo1(drvPath)
{
var fso, drv, s ="";
fso = new ActiveXObject("Scripting.FileSystemObject");
drv = fso.GetDrive(fso.GetDriveName(drvPath));
s += "Drive " + drvPath.toUpperCase()+ " - ";
s += drv.VolumeName + "<br>";
s += "Total Space: " + drv.TotalSize / 1024;
s += " Kb" + "<br>";
s += "Free Space: " + drv.FreeSpace / 1024;
s += " Kb" + "<br>";
Response.Write(s);
}
处理文件夹
在下面的表中,描述了普通的文件夹任务和执行它们的方法。任务 方法
创建文件夹。 FileSystemObject.CreateFolder
删除文件夹。 Folder.Delete 或 FileSystemObject.DeleteFolder
移动文件夹。 Folder.Move 或 FileSystemObject.MoveFolder
复制文件夹。 Folder.Copy 或 FileSystemObject.CopyFolder
检索文件夹的名字。 Folder.Name
如果文件夹在驱动器上存在,则找出它。 FileSystemObject.FolderExists
获得现有 Folder 对象的实例。 FileSystemObject.GetFolder
找出文件夹的父文件夹名。 FileSystemObject.GetParentFolderName
找出系统文件夹的路径。 FileSystemObject.GetSpecialFolder 请考察示例代码,来看看在 FileSystemObject 中使用了多少种这些的方法和属性。下面的示例示范了如何使用 Folder 和 FileSystemObject 对象,来操作文件夹和获得有关它们的信息:[VBScript]
Sub ShowFolderInfo()
Dim fso, fldr, s
' 获取 FileSystemObject 的一个实例。
Set fso = CreateObject("Scripting.FileSystemObject")
' 获取驱动器对象。
Set fldr = fso.GetFolder("c:")
' 打印父文件夹名。
Response.Write "Parent folder name is: " & fldr & "<br>"
' 打印驱动器名。
Response.Write "Contained on drive " & fldr.Drive & "<br>"
' 打印根文件名。
If fldr.IsRootFolder = True Then
Response.Write "This is the root folder." & ""<br>"<br>"
Else
Response.Write "This folder isn't a root folder." & "<br><br>"
End If
' 用 FileSystemObject 对象新建文件夹。
fso.CreateFolder ("C:\Bogus")
Response.Write "Created folder C:\Bogus" & "<br>"
' 打印文件夹的基本名。
Response.Write "Basename = " & fso.GetBaseName("c:\bogus") & "<br>"
' 删除新建文件夹。
fso.DeleteFolder ("C:\Bogus")
Response.Write "Deleted folder C:\Bogus" & "<br>"
End Sub
[JScript]
function ShowFolderInfo()
{
var fso, fldr, s = "";
// 获取 FileSystemObject 的一个实例。
fso = new ActiveXObject("Scripting.FileSystemObject");
// 获取驱动器名。
fldr = fso.GetFolder("c:");
// 打印父文件夹名。
Response.Write("Parent folder name is: " + fldr + "<br>");
// 打印驱动器名。
Response.Write("Contained on drive " + fldr.Drive + "<br>");
// 打印根文件名。
if (fldr.IsRootFolder)
Response.Write("This is the root folder.");
else
Response.Write("This folder isn't a root folder.");
Response.Write("<br><br>");
// 用 FileSystemObject 对象新建文件夹。
fso.CreateFolder ("C:\\Bogus");
Response.Write("Created folder C:\\Bogus" + "<br>");
// 打印文件夹的基本名。
Response.Write("Basename = " + fso.GetBaseName("c:\\bogus") + "<br>");
// 删除新建的文件夹。
fso.DeleteFolder ("C:\\Bogus");
Response.Write("Deleted folder C:\\Bogus" + "<br>");
}
移动、复制和删除文件
创建文件
创建空文本文件(有时被叫做“文本流”)有三种方法。第一种方法是用 CreateTextFile 方法。下面的示例示范了如何用 CreateTextFile 方法创建文本文件:[VBScript]
Dim fso, f1
Set fso = CreateObject("Scripting.FileSystemObject")
Set f1 = fso.CreateTextFile("c:\testfile.txt", True)
[JScript]
var fso, f1;
fso = new ActiveXObject("Scripting.FileSystemObject");
f1 = fso.CreateTextFile("c:\\testfile.txt", true);
创建文本文件的第二种方法是,使用 FileSystemObject 对象的 OpenTextFile 方法,并设置 ForWriting 标志。[VBScript]
Dim fso, ts
Const ForWriting = 2
Set fso = CreateObject("Scripting. FileSystemObject")
Set ts = fso.OpenTextFile("c:\test.txt", ForWriting, True)
[JScript]
var fso, ts;
var ForWriting= 2;
fso = new ActiveXObject("Scripting.FileSystemObject");
ts = fso.OpenTextFile("c:\\test.txt", ForWriting, true);
创建文本文件的第三种方法是,使用 OpenAsTextStream 方法,并设置 ForWriting 标志。要使用这种方法,使用下面的代码:[VBScript]
Dim fso, f1, ts
Const ForWriting = 2
Set fso = CreateObject("Scripting.FileSystemObject")
fso.CreateTextFile ("c:\test1.txt")
Set f1 = fso.GetFile("c:\test1.txt")
Set ts = f1.OpenAsTextStream(ForWriting, True)
[JScript]
var fso, f1, ts;
var ForWriting = 2;
fso = new ActiveXObject("Scripting.FileSystemObject");
fso.CreateTextFile ("c:\\test1.txt");
f1 = fso.GetFile("c:\\test1.txt");
ts = f1.OpenAsTextStream(ForWriting, true);
添加数据到文件中
一旦创建了文本文件,使用下面的三个步骤向文件添加数据:打开文本文件。写入数据。关闭文件。要打开现有的文件,则使用 FileSystemObject 对象的 OpenTextFile 方法或 File 对象的 OpenAsTextStream 方法。要写数据到打开的文本文件,则根据下表所述任务使用 TextStream 对象的 Write、WriteLine 或 WriteBlankLines 方法。任务 方法
向打开的文本文件写数据,不用后续一个新行字符。 Write
向打开的文本文件写数据,后续一个新行字符。 WriteLine
向打开的文本文件写一个或多个空白行。 WriteBlankLines 要关闭一个打开的文件,则使用 TextStream 对象的 Close 方法。注意 新行字符包含一个或几个字符(取决于操作系统),以把光标移动到下一行的开始位置(回车/换行)。注意某些字符串末尾可能已经有这个非打印字符了。
下面的例子示范了如何打开文件,和同时使用三种写方法来向文件添加数据,然后关闭文件:[VBScript]
Sub CreateFile()
Dim fso, tf
Set fso = CreateObject("Scripting.FileSystemObject")
Set tf = fso.CreateTextFile("c:\testfile.txt", True)
' 写一行,并带有一个新行字符。
tf.WriteLine("Testing 1, 2, 3.")
' 向文件写三个新行字符。
tf.WriteBlankLines(3)
' 写一行。
tf.Write ("This is a test.")
tf.Close
End Sub
[JScript]
function CreateFile()
{
var fso, tf;
fso = new ActiveXObject("Scripting.FileSystemObject");
tf = fso.CreateTextFile("c:\\testfile.txt", true);
// 写一行,并带有一个新行字符。
tf.WriteLine("Testing 1, 2, 3.") ;
// 向文件写三个新行字符。
tf.WriteBlankLines(3) ;
// 写一行。
tf.Write ("This is a test.");
tf.Close();
}
读取文件
要从文本文件读取数据,则使用 TextStream 对象的 Read、ReadLine 或 ReadAll 方法。下表描述了不同的任务应使用哪种方法。任务 方法
从文件读取指定数量的字符。 Read
读取一整行(一直到但不包括新行字符)。 ReadLine
读取文本文件的整个内容。 ReadAll 如果使用 Read 或 ReadLine 方法,并且想跳过数据的特殊部分,则使用 Skip 或 SkipLine 方法。read 方法的结果文本存在一个字符串中,该字符串可以显示在一个控件中,也可以用字符串函数(如 Left、Right 和 Mid)来分析,连接等等。下面的例子示范了如何打开文件,和如何写数据到文件中并从文件读取数据:[VBScript]
Sub ReadFiles
Dim fso, f1, ts, s
Const ForReading = 1
Set fso = CreateObject("Scripting.FileSystemObject")
Set f1 = fso.CreateTextFile("c:\testfile.txt", True)
' 写入一行。
Response.Write "Writing file <br>"
f1.WriteLine "Hello World"
f1.WriteBlankLines(1)
f1.Close
' 读取文件内容。
Response.Write "Reading file <br>"
Set ts = fso.OpenTextFile("c:\testfile.txt", ForReading)
s = ts.ReadLine
Response.Write "File contents = '" & s & "'"
ts.Close
End Sub
[JScript]
function ReadFiles()
{
var fso, f1, ts, s;
var ForReading = 1;
fso = new ActiveXObject("Scripting.FileSystemObject");
f1 = fso.CreateTextFile("c:\\testfile.txt", true);
// 写入一行。
Response.Write("Writing file <br>");
f1.WriteLine("Hello World");
f1.WriteBlankLines(1);
f1.Close();
// 读取文件内容。
Response.Write("Reading file <br>");
ts = fso.OpenTextFile("c:\\testfile.txt", ForReading);
s = ts.ReadLine();
Response.Write("File contents = '" + s + "'");
ts.Close();
}
移动、复制和删除文件
FSO 对象模型各有两种方法移动、复制和删除文件,如下表所述。任务 方法
移动文件 File.Move 或 FileSystemObject.MoveFile
复制文件 File.Copy 或 FileSystemObject.CopyFile
删除文件 File.Delete 或 FileSystemObject.DeleteFile 下面示例在驱动器 C 的根目录中创建一个文本文件,向其中写一些信息,然后把它移动到 \tmp 目录中,并在 \temp 中做一个备份,最后把它们从两个目录中删掉。要运行下面的示例,需要先在驱动器 C 的根目录中创建 \tmp 和 \temp 目录:[VBScript]
Sub ManipFiles
Dim fso, f1, f2, s
Set fso = CreateObject("Scripting.FileSystemObject")
Set f1 = fso.CreateTextFile("c:\testfile.txt", True)
Response.Write "Writing file <br>"
' 写入一行。
f1.Write ("This is a test.")
' 关闭写入到的文件。
f1.Close
Response.Write "Moving file to c:\tmp <br>"
' 获取到 C:\ 根目录中文件的句柄。
Set f2 = fso.GetFile("c:\testfile.txt")
' 将文件移到 \tmp 目录。
f2.Move ("c:\tmp\testfile.txt")
Response.Write "Copying file to c:\temp <br>"
' 将文件复制到 \temp。
f2.Copy ("c:\temp\testfile.txt")
Response.Write "Deleting files <br>"
' 获得文件当前位置的句柄。
Set f2 = fso.GetFile("c:\tmp\testfile.txt")
Set f3 = fso.GetFile("c:\temp\testfile.txt")
' 删除文件。
f2.Delete
f3.Delete
Response.Write "All done!"
End Sub
[JScript]
function ManipFiles()
{
var fso, f1, f2, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
f1 = fso.CreateTextFile("c:\\testfile.txt", true);
Response.Write("Writing file <br>");
// 写入一行。
f1.Write("This is a test.");
// 关闭写入到的文件。
f1.Close();
Response.Write("Moving file to c:\\tmp <br>");
// 获取到 C:\ 根目录中文件的句柄。
f2 = fso.GetFile("c:\\testfile.txt");
// 将文件移到 \tmp 目录。
f2.Move ("c:\\tmp\\testfile.txt");
Response.Write("Copying file to c:\\temp <br>");
// 将文件复制到 \temp。
f2.Copy ("c:\\temp\\testfile.txt");
Response.Write("Deleting files <br>");
// 获得文件当前位置的句柄。
f2 = fso.GetFile("c:\\tmp\\testfile.txt");
f3 = fso.GetFile("c:\\temp\\testfile.txt");
// 删除文件。
f2.Delete();
f3.Delete();
Response.Write("All done!");
}
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<script language="JavaScript">
function test()
{
var fso, tf;
fso = new ActiveXObject("Scripting.FileSystemObject");
tf = fso.CreateTextFile("c:\\test.txt", true);
tf.WriteLine("test") ;
tf.Close();
}
</script>
<body>
<input value="test" type="button" onClick="CreateFile()">
</body>
</html>会出现安全提示为什么要放客户端呢?数据很容易被修改,自己写个加密的函数吧
<input value="test" type="button" onClick="CreateFile()">
|
test()
你也可以写入客户端的Access库中,参见
http://expert.csdn.net/Expert/TopicView1.asp?id=1490539
你到底有没有试过?FSO不是只可以在服务器端
用xuzuning(唠叨)的给你的方法就行下面的是用ODBC连接客户端的ORACLE的代码<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
<TITLE></TITLE>
<script language=javascript>
function connectDb()
{
var ConnDB = new ActiveXObject("ADODB.Connection");
ConnDB.ConnectionString="dsn=orc2;uid=webstat;pwd=khkj;";
ConnDB.Open();
var Rs = new ActiveXObject("ADODB.Recordset");
var tempstr="";
Rs.Open("select * from tab",ConnDB,1,3);
while(!Rs.EOF)
{
tempstr = tempstr + Rs("TNAME") + "<br>";
Rs.MoveNext;
}
test.innerHTML=tempstr;
}
</script>
</HEAD>
<BODY><P><div id=test> </div>
<P><INPUT id=button1 type=button value=显示 name=button1 onclick="connectDb()"></P></BODY>
</HTML>