如何在网页中访问硬盘中的文件

时间:2017-05-07 12:36:48

标签: javascript html bash

我的硬盘基本上有很多文件,所有文件都是这种形式,
2014.C1.012.012 - 文件的全名,所有这些都有不同的编号和名称。    我想做的是一个网页,只在本地运行,我有一个表格除以 2024 | C4 | 912 | 928 |说明,我应该能够搜索图纸,或者仅选择C1文件。   对于excel,我只需使用bash获取文件路径的所有文件名,然后按类别划分它们然后使用超链接功能。   在网页中执行此操作的最佳方法是什么?

2 个答案:

答案 0 :(得分:1)

您的浏览器沙箱在网页中运行的Javascript:您无法从“网页”访问“计算机”。

您必须运行服务器进程才能访问您的数据:PHP,Python或基于Node.JS的解决方案。

此服务器将负责浏览您的数据并通过网页发送结果。

答案 1 :(得分:0)

对于网页,您可以采用与Excel相同的方式执行此操作:制作生成HTML文件的Bash脚本(或Javascript或Python等)。

另一种方法如果您想创建一个可在本地运行且可访问您的文件系统的网页,请使用 Electron 。以下是您可以在Electron中运行以创建文件列表的示例网页。实现搜索功能留给读者练习。

Loading file listing…

<style>
body {
  font-family: sans-serif;
}

table {
  border-collapse: collapse;
}

td {
  border: 1px solid #eee;
  padding: 4;
}
</style>

<script>
// Replace this with the path of the directory you want a file listing of.
let directory_path = "."

let file_name_pattern = /^(.*?)\.(.*?)\.(.*?)\.(.*?) - ([^]*)/

require("fs").readdir(directory_path, (error, file_names) => {
  if (error) {
    document.body.textContent = "Failed to read directory listing: " + error.message
  } else {
    let table_element = document.createElement("table")
    file_names.forEach(file_name => {
      let match = file_name_pattern.exec(file_name)
      if (!match) {
        return
      }
      let tr_element = document.createElement("tr")
      let cell_index = 0
      while (cell_index++ < 5) {
        let td_element = document.createElement("td")
        td_element.textContent = match[cell_index]
        tr_element.appendChild(td_element)
      }
      table_element.appendChild(tr_element)
    })
    document.body.firstChild.replaceWith(table_element)
  }
})
</script>