使用Scripting.FileSystemObject在尚不存在的路径中创建文件

时间:2011-12-14 23:30:12

标签: file filesystemobject testcomplete jscript

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

2 个答案:

答案 0 :(得分: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);

答案 1 :(得分:3)

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

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