无法检查文件是否存在于纯JavaScript中

时间:2019-07-11 07:58:03

标签: javascript

我正在尝试用纯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 ...行中出了点问题。

1 个答案:

答案 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');
    }
});