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

Posted

技术标签:

【中文标题】确定文件是不是存在或为 0 字节【英文标题】:Determine if file exists or is 0 Bytes确定文件是否存在或为 0 字节 【发布时间】:2017-02-03 12:04:13 【问题描述】:

在 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 字节的空文件会发生什么?我可以访问文件大小属性吗?或者有没有其他方法可以解决这个问题? file.exists() 似乎有问题

【问题讨论】:

这对***.com/a/7340313/989920有帮助吗? @evolutionxbox 错误 22:ActiveXObject 没有构造函数。不,ActiveX 没有帮助 - 不错的尝试 ;) 【参考方案1】:
File(f).exists

是布尔值而不是函数

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

更新:其实“神秘客人先生”是对的(见 cmets)。

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

【讨论】:

告诉 Adob​​e :) 你使用的是哪个 photoshop 和操作系统? Photoshop CC (1.4.2.1) x64 Win 7 File('~/Desktop/does-not-exist.txt').exists 在 macOS 10.12.2 和 PS CC2017 上为我返回 true :-( 但 new File('~/Desktop/does-not-exist.txt').exists 似乎可以正常工作。 天啊!我已经看到我哪里出错了。对关键字“文件”的小困惑var someTextFile = "c:\\temp\\textfile.txt"; alert(File(someTextFile ).exists); //true

以上是关于确定文件是不是存在或为 0 字节的主要内容,如果未能解决你的问题,请参考以下文章

VC怎么通过绝对路径确定一个文件或者文件夹是不是存在,如果是文件存在,怎么获得该文件的大小

查找字段存在的所有文档:在 Elasticsearch 中它有一个值或为空

在没有 20 秒超时的情况下确定文件是不是存在于网络驱动器上

从批处理文件中确定闪存驱动器是不是存在而没有错误消息

如何确定 VB.Net DataRow 中是不是存在列

确定字节数组是不是包含 ANSI 或 Unicode 字符串?