我正在尝试用纯Java脚本编写简单的代码部分,应该只检查文件是否存在于某些特定文件夹中。我已经迷失了一天,试图使它正常工作,我已经看到很多类似的主题,但是没有一个对我有用。
我试图在Win7的PC上运行简单的html页面。
我已经尝试过此线程中的代码 javascript check if file exists
function fileExists(url)
{
var http = new XMLHttpRequest();
http.open('HEAD', url, false);
http.send();
return http.status!=404;
}
但是我在http.send()
行“发生网络错误”中遇到了错误。
此线程也无济于事: Can't check if file on sdcard exists
String path = Environment.getExternalStorageDirectory().getPath() + "/ping.xml";
File f = new File(path);
if (f.exists()) {
// do your stuff
}
else {
// do your stuff
}
带有新File(path)
的行出现错误:“文件至少需要2个参数,但仅传递了1个参数”
好吧,我找到了正确的语法,它看起来应该像这样:
File f = new File([""], path);
我在这个论坛上发现很多次new File
的相同错误语法,只有一个参数而不是其中两个参数,这真是令人讨厌。即使我以这种方式解决了这个问题,它也不起作用-方法
f.exists()
总是返回假
这是我现在拥有的当前代码:
function MyFunc()
{
var myfile = new File([""], 'F:\\abc.txt');
if (!myfile.exists) {
alert(myfile.name + " could not be found!");
}
else
{
alert("file exists!");
}
}
我试图通过以下方法查看myfile数组中的内容:
myfile.name
myfile.size
myfile.webkitRelativePath
,但是似乎只有它们中的第一个起作用(文件名)。其他返回空数据。所以也许原因是var myfile = new ...行中出了点问题。
答案 0 :(得分:0)
您必须使用node.js执行javascript才能访问本地文件系统。您可以使用fs API https://nodejs.org/api/fs.html
然后您可以执行类似的操作
var fs = require('fs');
fs.stat('path/to/file', function(err) {
if (!err) {
console.log('file or directory exists');
}
else if (err.code === 'ENOENT') {
console.log('file or directory does not exist');
}
});