我正在尝试打开一个具有读取权限的文件。
var namestart=fso.OpenTextFile("C:\\name.txt",1);
var name2=namestart.ReadAll();
namestart.Close();但是这个文件并不总是充满某些内容,当文件为空时,ReadAll会给出一个错误,因为(当然)它不能读取文件中的内容并返回一个错误。有什么办法能发现这个错误吗?
var namestart=fso.OpenTextFile("C:\\naam.txt",1);
var name2="";
if(namestart.ReadAll() != ""){
name2=namestart.ReadAll();
}
namestart.Close();这也不起作用,因为ReadAll返回一个错误。
发布于 2014-07-31 14:21:38
您可以使用AtEndOfStream性质。
var namestart=fso.OpenTextFile("C:\\name.txt",1);
var name2 = namestart.AtEndOfStream ? "" : namestart.ReadAll();
namestart.Close();发布于 2014-07-31 14:13:18
您可以检查(现有)文件的.Size,也可以使用try/catch来处理不存在的(如下面的代码所示)和零长度文件。
var oFS = new ActiveXObject("Scripting.FileSystemObject");
var aFiles = ".\\25057783.js .\\empty.txt .\\nothere.nix".split(/ /);
for (var iFile in aFiles) {
var sFile = aFiles[iFile];
WScript.Echo("----", sFile)
try {
var oFile = oFS.GetFile(sFile);
if (0 < oFile.Size) {
var sContent = oFile.OpenAsTextStream().ReadAll();
WScript.Echo(" got content")
} else {
WScript.Echo(" file is empty");
}
}
catch(e) {
WScript.Echo(" Bingo:", e.message);
}
}产出:
cscript 25057783.js
---- .\25057783.js
got content
---- .\empty.txt
file is empty
---- .\nothere.nix
Bingo: File not foundhttps://stackoverflow.com/questions/25057783
复制相似问题