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

用户3052503

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

如何使用Jquery / Javascript将文件夹中的所有图像加载到我的网页中

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 + ")>");


        });
    }
});
来宾271314

您可以使用<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+或firefox 42+的情况下true请参阅Firefox 42(针对开发人员)选择和删除要解析的文件和/或文件夹注意,您也可以从文件管理器中的<input type="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>

plnkr http://plnkr.co/edit/Y1XYd9rLOdKRHw6tb1Sh?p=preview


对于可以ajax在铬,铬file:协议本地文件系统上启动的请求,您可以使用--allow-file-access-from-files标志集启动它,请参阅仅在firefox中工作的Jquery load()?

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

对于$.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)
})

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用php打印文件夹内的所有txt文件?

如何通过使用终端或脚本隐藏文件夹中的所有文件

如何从Java读取文件夹中的所有文件?

如何从Java Resources文件夹中的文件夹获取所有文件的列表

PowerShell脚本以打印所有子文件夹

如何使用Java从文件夹中的所有文件中读取数据?

如何打印文件夹中所有文件的名称

逐行读取文件夹中的所有.txt文件

从文件夹中读取所有.txt文件?

使用wmic命令从文件夹中的所有文件打印文件描述

如何使用Java从某个文件夹中获取所有文件

如何使用.gitignore忽略文件夹中的所有子文件夹

如何使用python删除文件夹中的所有文件夹?

如何使用python和bs4读取和覆盖文件夹中的所有* .txt文件?

如何编写bash脚本以遍历文件夹中的每个目录并将所有.txt文件附加到单个文件中?

SMBJ:如何打印特定子文件夹中存在的所有文件

Javac在尝试使用Linux脚本编译文件夹中的所有Java文件时给出错误

Java-读取文件夹中的所有.txt文件

使用 PowerShell 打印文件夹中的所有 Excel 文件

如何使用bash脚本在所有文件夹中放置文件副本?

使用PowerShell脚本从所有30天以上的子文件夹中删除文件

在外壳程序脚本中使用*变量引用文件夹中的所有文件

如何使用 Python 读取文件夹中的所有 .txt 文件并将其内容附加到一个 .txt 文件中?

如何删除Shell脚本文件中的特定if语句,并对单个文件夹内所有文件夹的所有文件执行相同的操作

打印包含相同子文件夹的所有文件夹中哪些子文件夹为空?

如何使用PowerShell从文件夹和所有子文件夹中删除所有访问规则?

运行文件夹中的所有shell脚本

运行文件夹中的所有TCL脚本

如何使用Groovy读取文件夹中的所有文件并替换文件中的模式