确定文件是否存在或是否为0字节

时间:2017-02-03 12:04:13

标签: javascript photoshop exists extendscript photoshop-script

在Photoshop中,我可以阅读文本文件。

function does_file_exist(f)
{
    var lines = "";
    var aFile = new File(f);
    aFile.open("r");
    while(!aFile.eof)
    {
     var line = aFile.readln();
     if (line != null && line.length >0)
     {
        lines += line + "\n";
     }
    }
    aFile.close();

    if (lines.length == 0)
    {
        alert(f + "\ndoes not exist!");
        return false;
    }
    else
    {
        var trunc = lines.substring(0,256);
        alert(f + " exists!\nHere's proof:\n\n" + trunc + "...")
        return lines;
    }
}

如果返回的字符串长度为0,我们假设该文件根本不存在。这工作正常,但如果有一个0字节的空文件会发生什么?我可以访问filesize属性吗?或者还有另一种解决这个问题的方法吗? file.exists()

似乎有问题

1 个答案:

答案 0 :(得分:2)

File(f).exists

布尔值不是函数

  

布尔存在只读属性
  如果为true,则此对象引用文件系统中实际存在的文件或文件系统别名。

更新:实际上"先生。神秘嘉宾"是对的(见评论)。

File('~/Desktop/does-not-exist.txt').exists
即使文件不存在,

也会在macOS 10.12.2和PS CC2017上为我返回true。使用

new File('~/Desktop/does-not-exist.txt').exists

似乎作为例外工作。

更新2:

此错误似乎是Photoshop特有的问题。在ESTK和InDesign File('~/Desktop/does-not-exist.txt').exists中返回false