簡體   English   中英

javascript按目錄讀取多個文件

[英]javascript multiple file reading by directory

我正在嘗試創建一個站點,該站點讀取預定義文件夾中的所有文本。 我找到了一個我想要的代碼,但在此代碼中,您必須通過文件輸入選擇文件。 我想讓它自動讀取文件夾中所有文件的文本並打印它們。

我發現的代碼:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>
    <body>
        <label>Select multiple files to read from your system:</label>
        <input type="file" id="fileinput" multiple />

        <script>
            /**
             *  Simple JavaScript Promise that reads a file as text.
             **/
            function readFileAsText(file){
                return new Promise(function(resolve,reject){
                    let fr = new FileReader();

                    fr.onload = function(){
                        resolve(fr.result);
                    };

                    fr.onerror = function(){
                        reject(fr);
                    };

                    fr.readAsText(file);
                });
            }

            // Handle multiple fileuploads
            document.getElementById("fileinput").addEventListener("change", function(ev){
                let files = ev.currentTarget.files;
                let readers = [];

                // Abort if there were no files selected
                if(!files.length) return;

                // Store promises in array
                for(let i = 0;i < files.length;i++){
                    readers.push(readFileAsText(files[i]));
                }
                
                // Trigger Promises
                Promise.all(readers).then((values) => {
                    // Values will be an array that contains an item
                    // with the text of every selected file
                    // ["File1 Content", "File2 Content" ... "FileN Content"]
                    console.log(values);
                });
            }, false);
        </script>
    </body>
</html>

謝謝!

你可以要求一個 DirectoryHandle,將它保存到 IndexedDB 並在任何時候重用它

const handle = await window.showDirectoryPicker()

也可以通過拖放獲得句柄

const handle = await dataTransfer.items[0].getAsFileSystemHandle()

還有一個沙盒目錄,您可以使用navigator.storage.getDirectory()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM