http://www.csdn.net/develop/Read_Article.asp?Id=12612

解决方案 »

  1.   

    要用 FileSystemObject (FSO) 对象模型来编程,则: 使用 CreateObject 方法来创建 FileSystemObject 对象。 
    在新创建的对象上使用适当的方法。 
    访问对象的属性。 
    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);
      

  2.   

    使用 FileSystemObject (FSO) 对象模型,可以有计划地处理驱动器和文件夹,就像在 Windows 资源管理器中交互式地处理它们一样。可以复制和移动文件夹,获取有关驱动器和文件夹的信息,等等。获取有关驱动器的信息
    可以用 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>");
    }
      

  3.   

    有两种主要的文件处理类型: 创建、添加或删除数据,以及读取文件 
    移动、复制和删除文件 
    创建文件
    创建空文本文件(有时被叫做“文本流”)有三种方法。第一种方法是用 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!");
    }
      

  4.   


    <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>会出现安全提示为什么要放客户端呢?数据很容易被修改,自己写个加密的函数吧
      

  5.   

    更正:
    <input value="test" type="button" onClick="CreateFile()">
                                                  |
                                                test()
      

  6.   

    老大我要在客户机上能生成txt的文件你给的只能在server下生成,,请再帮帮忙,好好想想
      

  7.   

    可以使用fso在客户端生成文件,但会有安全警告。
    你也可以写入客户端的Access库中,参见
    http://expert.csdn.net/Expert/TopicView1.asp?id=1490539
      

  8.   

    搞什么?我给你的代码是在客户端生成的,只是会出现安全提示
    你到底有没有试过?FSO不是只可以在服务器端
      

  9.   

    写入客户端的数据库中
    用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>&nbsp;</div>
    <P><INPUT id=button1 type=button value=显示 name=button1 onclick="connectDb()"></P></BODY>
    </HTML>