UNPKG

wsemi

Version:

A support package for web developer.

118 lines (95 loc) 3.99 kB
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" lang="zh-tw"> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> <title>examples for domShowInputAndGetFiles</title> <!-- @babel/polyfill已廢棄 --> <script nomodule src="https://cdn.jsdelivr.net/npm/@babel/polyfill@7.12.1/dist/polyfill.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/wsemi@1.7.19/dist/wsemi.umd.js"></script> </head> <body> <div style="border:1px solid #aaa;"> <div style="margin:10px;"> <button style="display:block;" onclick="listFoldersAndFiles({ multiple: true, entireHierarchy: true })">open folder for entireHierarchy</button> </div> <div style="margin:10px;"> <button style="display:block;" onclick="listFoldersAndFiles({ multiple: true })">open folder for multi-files</button> </div> <div style="margin:10px;"> <button style="display:block;" onclick="listFoldersAndFiles({ })">open folder for single-file</button> </div> <div id="res" style="display:none; padding:10px; border-top:1px solid #ddd; _height:600px; _overflow-y:auto;"> </div> </div> <script> async function _listFoldersAndFiles() { async function core() { //showDirectoryPicker let dirHandle = await window.showDirectoryPicker() // console.log('dirHandle', dirHandle) //rs let rs = [] //getFilesRecursively async function getFilesRecursively(entry) { // console.log('getFilesRecursively',entry) if (entry.kind === 'file') { let file = await entry.getFile() if (file !== null) { //file.relativePath = getRelativePath(entry) rs.push(file) } } else if (entry.kind === 'directory') { // let rs = await entry.resolve() // console.log('rs',rs) // await wsemi.pmSeries(rs,async (handle)=>{ // await getFilesRecursively(handle) // }) for await (let handle of entry.values()) { await getFilesRecursively(handle) } } } //recursively await getFilesRecursively(dirHandle) return rs } let r = { files: [], errs: {}, } await core() .then((files) => { r.files = files }) .catch(() => { }) return r } function listFoldersAndFiles(opt){ // wsemi.domShowInputAndGetFiles=_listFoldersAndFiles //domShowInputAndGetFiles wsemi.domShowInputAndGetFiles('*', opt) .then(function(res){ // console.log('res',res) let c='' for(let k=0;k<res.files.length;k++){ let v=res.files[k] // console.log('name=',v.name, 'webkitRelativePath=',v.webkitRelativePath) c+=(v.webkitRelativePath || v.name)+'\n' } if(c===''){ c='no folders or files' } // console.log('c',c) let eleRes=document.querySelector('#'+'res') eleRes.style.display='block' eleRes.innerText=c }) .catch(function(err){ console.log(err) }) } </script> </body> </html>