首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jscript (实用化) FSO ReadAll

jscript (实用化) FSO ReadAll
EN

Stack Overflow用户
提问于 2014-07-31 11:29:09
回答 2查看 764关注 0票数 1

我正在尝试打开一个具有读取权限的文件。

代码语言:javascript
复制
var namestart=fso.OpenTextFile("C:\\name.txt",1);
var name2=namestart.ReadAll();
namestart.Close();

但是这个文件并不总是充满某些内容,当文件为空时,ReadAll会给出一个错误,因为(当然)它不能读取文件中的内容并返回一个错误。有什么办法能发现这个错误吗?

代码语言:javascript
复制
var namestart=fso.OpenTextFile("C:\\naam.txt",1);
var name2="";
if(namestart.ReadAll() != ""){
    name2=namestart.ReadAll();
}
namestart.Close();

这也不起作用,因为ReadAll返回一个错误。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-07-31 14:21:38

您可以使用AtEndOfStream性质

代码语言:javascript
复制
var namestart=fso.OpenTextFile("C:\\name.txt",1);
var name2 = namestart.AtEndOfStream ? "" : namestart.ReadAll();
namestart.Close();
票数 3
EN

Stack Overflow用户

发布于 2014-07-31 14:13:18

您可以检查(现有)文件的.Size,也可以使用try/catch来处理不存在的(如下面的代码所示)零长度文件。

代码语言:javascript
复制
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);
    }
}

产出:

代码语言:javascript
复制
cscript 25057783.js
---- .\25057783.js
     got content
---- .\empty.txt
     file is empty
---- .\nothere.nix
     Bingo: File not found
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25057783

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档