【问题标题】:Fetching the list of filenames in root directory using javascipt使用javascript获取根目录中的文件名列表
【发布时间】:2020-03-23 05:03:34
【问题描述】:

如何获取根目录中的文件名并将它们存储为字符串?假设我在 http://192.168.1.10/REPORTS 有来自服务器端的文件,并且可以预览它们,如下所示:

例如,我声明了变量a, b, c, d, ..。然后我将相应地存储获取的文件名。 a = A_3_3_1.CSV,b = A_3_3_4.CSV,以此类推……

这将极大地帮助我改进和自定义 UI,这与您所看到的不同。有没有办法做到这一点?

【问题讨论】:

  • 使用 AJAX 获取目录,将其存储在 DOM 中,然后使用 DOM 方法遍历元素。请注意,这没有标准格式,HTTP 不是网络文件系统协议。

标签: javascript string file


【解决方案1】:

这是使用 ajax 获取目录中文件列表的一种方法。

只要文件所在的目录中没有默认的 HTML 文件(例如 index.html、default.html),ajax 就会返回屏幕截图中显示的页面。然后只需从<a> 标签中收集文件名即可。

const dir = ".";

$.ajax({
    //This will retrieve the contents of the folder if the folder is configured as 'browsable'
    url: dir,
    success: function (data) {         
        $(data).find("a").each(function () {            
            console.log('contents');
            var filename = this.href.split('/').pop();
            $('#FileList').append('<li>'+filename+'</li>');
        });
    }
});

如果您想排除用于获取列表的 HTML 和 JS 文件,请在 success 回调中执行此操作。

if (filename !== 'filelist.html' && filename !== 'filelist.js') {
  $('#FileList').append('<li>'+filename+'</li>');
}

如果要将输出限制为仅 CSV 文件,请在 find 函数中指定。

const fileextension = ".csv";
...

$(data).find("a:contains(" + fileextension + ")").each(function () { 
  ...
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-11-26
    • 1970-01-01
    • 2010-10-04
    • 2016-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-16
    相关资源
    最近更新 更多