我正在尝试使用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文件中的脚本标签中运行它。
答案 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.CreateFolder和aqFile.Create方法。这是一个例子:
createFile("\\\\pathA\\pathB\\DirectoryDoesntExistButIWantItTo\\newfile.txt");
...
function createFile(fileName)
{
aqFileSystem.CreateFolder(aqFileSystem.GetFileFolder(fileName));
aqFile.Create(fileName);
}