当前位置: 首页 > 面试题库 >

如何使用Java脚本打印文件夹中的所有txt文件

鄢子平
2023-03-14
问题内容

我需要使用javascript从HTML内的目录中打印所有txt文件。我试图修改处理照片的代码,但未成功

var dir = "D:\Finaltests\test1\new\places";
var fileextension = ".txt";
$.ajax({
    //This will retrieve the contents of the folder if the folder is configured as 'browsable'
    url: dir,
    success: function (data) {
        //List all .txt file names in the page
        $(data).find("a:contains(" + fileextension + ")").each(function () {
         var filename = this.href.replace(window.location.host, "").replace("http://", "");
        $("body").append("<input type='file' onload='readText(" + dir + ")>");


        });
    }
});

问题答案:

您可以使用<input type="file">multiple属性集,accept属性设置为text/plain;change事件; FileReaderfor循环

var pre = document.querySelector("pre");



document.querySelector("input[type=file]")

.addEventListener("change", function(event) {

  var files = event.target.files;

  for (var i = 0; i < files.length; i++) {

    (function(file) {

      var reader = new FileReader();

      reader.addEventListener("load", function(e) {

         pre.textContent += "\n" + e.target.result;

      });

      reader.readAsText(file)

    }(files[i]))

  }

})


<input type="file" accept="text/plain" multiple />

<pre>



</pre>

您还可以使用webkitdirectoryallowdirs属性在chrome,chrome上进行目录上传;在dom.input.dirpicker偏好设置为每晚45+或firefox42+的情况下true,选择和删除文件和/或要解析的文件夹。注意,您也可以从文件管理器中的<inputtype="file">元素删除文件夹

var pre = document.querySelector("pre");



document.querySelector("input[type=file]")

  .addEventListener("change", function(event) {

    console.log(event.target.files)

    var uploadFile = function(file, path) {

      // handle file uploading

      console.log(file, path);

      var reader = new FileReader();

      reader.addEventListener("load", function(e) {

        pre.textContent += "\n" + e.target.result;

      });

      reader.readAsText(file)

    };



    var iterateFilesAndDirs = function(filesAndDirs, path) {

      for (var i = 0; i < filesAndDirs.length; i++) {

        if (typeof filesAndDirs[i].getFilesAndDirectories === 'function') {

          var path = filesAndDirs[i].path;



          // this recursion enables deep traversal of directories

          filesAndDirs[i].getFilesAndDirectories()

          .then(function(subFilesAndDirs) {

            // iterate through files and directories in sub-directory

            iterateFilesAndDirs(subFilesAndDirs, path);

          });

        } else {

          uploadFile(filesAndDirs[i], path);

        }

      }

    };

    if ("getFilesAndDirectories" in event.target) {

      event.target.getFilesAndDirectories()

        .then(function(filesAndDirs) {

          iterateFilesAndDirs(filesAndDirs, '/');

        })

    } else {

      // do webkit stuff

      var files = event.target.files;

      for (var i = 0; i < files.length; i++) {

        (function(file) {

          uploadFile(file)

        }(files[i]))

      }

    }



  })


<!DOCTYPE html>

<html>



<head>

  <script></script>

</head>



<body>

  <input type="file" webkitdirectory allowdirs directory />

  <pre>



</pre>

</body>



</html>

对于可以ajax在铬,铬file:协议本地文件系统上启动的请求,可以--allow-file-access-from-files设置标志来启动。

在Firefox中你可以设置security.fileuri.strict_origin_policyfalse,看到Security.fileuri.strict originpolicy

对于$.ajax()铬的一种可行方法,您可以尝试使用铬

var path = "/path/to/drectory"; // `D:\`, `file:///`
var files = [];
$.ajax({url:path, dataType:"text html"})
.then((data) => {
  // match file names from `html` returned by chrome, chromium
  // for directory listing of `D:\Finaltests\test1\new\places`;
  // you can alternatively load the "Index of" document and retrieve
  // `.textContent` from `<a>` elements within `td` at `table` of
  // rendered `html`; note, `RegExp` to match file names
  // could probably be improved,  does not match space characters in file names
  var urls = $.unique(data.match(/\b(\w+|\d+)\.txt\b/g));
  return $.when.apply($, $.map(urls, (file) => {
    files.push(file);
    // `\`, or `/`, depending on filesystem type
    return $.ajax({url:path + "/" + file
                 , dataType:"text html"})
    .then((data) => {
      // return array of objects having property set to `file` name,
      // value set to text within `file`
      return {[file]:data}
    })
  }))
})
.then((...res) => {
  console.log(res, files)
})


 类似资料:
  • 问题内容: Python的新手,第一次发布者,请对我方便!我想在当前文件夹内的特定扩展名(在示例中为)的所有文件中插入一行文本。如果方便的话,它可以指向一个特定的文件夹。 下面是我复制和修改的内容,它确实可以满足我对一个特定文件的需要,完全不需要用SIT替换sit的部分,但是如果删除它,该程序将无法工作。我不知道为什么会这样,但是我可以接受。 我的问题是,如何为目录中的所有文件运行此文件?我尝试用

  • 问题内容: 比方说,我有一个文件夹,名为和里面我有,和。如何使用Java和读取文件夹中的所有文件(如果可能的话)? 问题答案: 类似于以下内容应该可以帮助您,请注意,为了简单起见,我使用apache commons FileUtils而不是弄乱缓冲区和流…

  • 问题内容: 我需要从文件夹中读取所有“ .txt”文件(用户需要选择此文件夹)。 请告知如何做? 问题答案: 您可以使用类,这是非常简单的用法 只需创建一个实例,您想要如何覆盖接受方法

  • 这是我的代码,这不是一个特定的程序。我只是用java数组列表和制作txt文件来练习,并在这个文件中存储数组列表变量。我尝试创建一个类,在这个类中,我为扫描仪创建了一个输入方法,然后将它存储到数组列表中。第二种方法是制作txt文件。第三种方法是在这个txt文件中添加thing。所有方法都可以,但我不知道如何将Arraylist数据导入到txt文件中。我是一个乞丐,我的问题对某些人来说可能是愚蠢的,我

  • 问题内容: 我希望读取特定文件夹中的所有文本文件。文件名中没有任何通用模式-否则任务会更容易。 如果我也可以处理子文件夹,那将是很好,但是即使是基本的实现也已足够。 我尝试查看先前询问的相关问题,但是没有一个给出我需要的C和Linux特定答案。 编辑 :所以,这是我根据收到的答案写的- 并收到 错误 -pnp @ pnp-laptop:〜/ snort_rules_folder $ ./a.out

  • 问题内容: 如何通过Java读取文件夹中的所有文件? 问题答案: Java 8提供了Files.walk API。