确定文件是不是存在或为 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
【讨论】:
告诉 Adobe :) 你使用的是哪个 photoshop 和操作系统? Photoshop CC (1.4.2.1) x64 Win 7File('~/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 中它有一个值或为空