Javascript:如何将数据附加到文件

时间:2012-04-17 14:49:20

标签: javascript activex

如何使用javascript将数据附加到文件?

我尝试使用此代码,但是我收到了错误:

var fso = new ActiveXObject("Scripting.FileSystemOject");
var filepath = fso.GetFile("member.txt");
var fileObject = fso.OpenTextFile(filepath, 8);
file.WriteLine(id + "|" + pass);
fileObject.close();

错误在var fso = new ActiveXObject("Scripting.FileSystemOject");上,写着:Error: Automation server can't create object

有没有其他方法使用javascript或修复此方法来附加文件?谢谢:))

修改 我已经做了this上写的内容,但它仍无法正常工作:/

3 个答案:

答案 0 :(得分:1)

我刚才在你的代码中意识到了这些:

var fileObject = fso.OpenTextFile(filepath, 8,true);

如果文件不存在,或者你想覆盖/附加它,你需要true - 参数。

var filepath = fso.GetFile("member.txt");// This won't work.
var filepath = "your_filePath"; // Use this instead
var fileObject = fso.OpenTextFile(filepath, 8, true);

OpenTextFile()需要一个像"D:/test/file.txt"这样的字符串的路径。 GetFile()会返回一个对象,您可以视为字符串(D:\test\file.txt),但它不是字符串。使用绝对路径,根据我的经验,相对路径似乎不起作用。

修改

将以下代码添加到html文件的<head>部分,然后在本地保存为hta(文件扩展名为hta,而不是htmhtml )。

<hta:application
  applicationName="MyApp"
  id="myapp"
  singleInstance="yes"
/>

然后运行hta文件。如果仍然出现ActiveX错误,则操作系统不支持。如果这样做,则表示您尚未正确完成所有安全设置。

编辑II

在这种情况下,通过ActiveX获取路径并不是非常有用,无论如何你都需要将它写成文字。而且我不应该做你的作业,但这就是诀窍......

var filepath = new String(fso.GetFile("member.txt")).replace(/\\/g,'/');

不要忘记我上面所说的关于使用绝对路径的内容......

答案 1 :(得分:0)

抛出错误是因为存在不允许activex运行的安全限制。如果您使用的是Internet Explorer(我认为您是),请更改您的安全设置以允许activex。 这可能很有用http://windows.microsoft.com/en-US/windows/help/genuine/ie-activex 干杯

编辑:我已经写了这个,但它仍然无法正常工作:/  *尝试重新启动浏览器

答案 2 :(得分:0)

8函数中的OpenTextFile指定您要附加到文件。您的问题来自浏览器的安全限制。为了使它工作,你必须降低安全级别,这是不是真的建议。