【问题标题】:Use Scripting.FileSystemObject to create file in path that doesn't already exist使用 Scripting.FileSystemObject 在不存在的路径中创建文件
【发布时间】:2011-12-14 23:30:11
【问题描述】:

我正在尝试使用 JScript 中的 Scripting.FileSystemObject 创建一个文本文件。如果文件中的目录尚不存在,我似乎无法弄清楚如何创建文件。例如:

var fso = new ActiveXObject("Scripting.FileSystemObject");

// Getting a JScript runtime error of "Path not found"
fso.CreateTextFile("\\\\pathA\\pathB\\DirectoryDoesntExistButIWantItTo\\newfile.txt", true);

我一直在寻找,但似乎这方面的文档并没有整齐地放在一个地方。例如,这里有一些 MSDN 文章讨论了这一点,但省略了我正在寻找的细节。

http://msdn.microsoft.com/en-us/library/aa711216(v=VS.71).aspx

http://msdn.microsoft.com/en-us/library/aa242706(v=VS.60).aspx

换句话说,我正在尽我最大的努力在谷歌上搜索,但我没有找到我要找的东西。我不认为这有什么不同。但我在 TestComplete 8 中编写这个脚本;但出于所有密集目的,您可以假设我在 IE 上的 html 文件中的脚本标记中运行它。

【问题讨论】:

标签: file filesystemobject testcomplete jscript


【解决方案1】:

如果您要在 TestComplete 中运行您的代码,您可以使用它自己的 aqFileSystem.CreateFolderaqFile.Create 方法。这是一个例子:

createFile("\\\\pathA\\pathB\\DirectoryDoesntExistButIWantItTo\\newfile.txt");
...
function createFile(fileName)
{
  aqFileSystem.CreateFolder(aqFileSystem.GetFileFolder(fileName));
  aqFile.Create(fileName);
}

【讨论】:

    【解决方案2】:

    如果文件夹不存在,我认为您需要手动创建该文件夹。如果您只需要担心直接父文件夹,可以使用GetParentFolderName 来帮助:

    var fso = new ActiveXObject("Scripting.FileSystemObject");
    var path = "\\\\pathA\\pathB\\DirectoryDoesntExistButIWantItTo\\newfile.txt";
    var folder = fso.GetParentFolderName(path);
    
    if (!fso.FolderExists(folder))
    {
        fso.CreateFolder(folder);
    }
    
    fso.CreateTextFile(path, true);
    

    【讨论】:

      猜你喜欢
      • 2010-11-22
      • 1970-01-01
      • 1970-01-01
      • 2013-12-23
      • 1970-01-01
      • 1970-01-01
      • 2014-12-11
      • 2011-04-28
      • 2022-07-08
      相关资源
      最近更新 更多