1

我正在尝试使用 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 文件中的脚本标记中运行它。

4

2 回答 2

3

如果文件夹不存在,我认为您需要手动创建该文件夹。如果您只需要担心直接的父文件夹,您可以使用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);
于 2011-12-15T05:51:56.293 回答
3

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

createFile("\\\\pathA\\pathB\\DirectoryDoesntExistButIWantItTo\\newfile.txt");
...
function createFile(fileName)
{
  aqFileSystem.CreateFolder(aqFileSystem.GetFileFolder(fileName));
  aqFile.Create(fileName);
}
于 2011-12-15T16:20:07.327 回答