| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225 |
- const iconConfig = [
- {
- type: ["", undefined, null],
- mime: "",
- icon: "/devTools/page/static/fileSys/weizhiwenjian.png",
- },
- {
- type: ["dwg"],
- mime: "dwg",
- icon: "/devTools/page/static/fileSys/DWG.png",
- },
- {
- type: ["xls", "xlsx", "csv"],
- mime: "xls",
- icon: "/devTools/page/static/fileSys/excel.png",
- },
- {
- type: ["exe"],
- mime: "exe",
- icon: "/devTools/page/static/fileSys/EXE.png",
- },
- {
- type: ["gif"],
- mime: "gif",
- icon: "/devTools/page/static/fileSys/GIF.png",
- },
- {
- type: ["html"],
- mime: "html",
- icon: "/devTools/page/static/fileSys/HTML.png",
- },
- {
- type: ["pdf"],
- mime: "pdf",
- icon: "/devTools/page/static/fileSys/pdf.png",
- },
- {
- type: ["ppt"],
- mime: "ppt",
- icon: "/devTools/page/static/fileSys/pptl.png",
- },
- {
- type: ["psd"],
- mime: "psd",
- icon: "/devTools/page/static/fileSys/PSD.png",
- },
- {
- type: ["rvt"],
- mime: "rvt",
- icon: "/devTools/page/static/fileSys/RVT.png",
- },
- {
- type: [
- "mp4",
- "avi",
- "wmv",
- "mpg",
- "mpeg",
- "mov",
- "flv",
- "3gp",
- "mp3gp",
- "mkv",
- "rmvb",
- ],
- mime: "mp4",
- icon: "/devTools/page/static/fileSys/shipin.png",
- },
- {
- type: ["skp"],
- mime: "skp",
- icon: "/devTools/page/static/fileSys/SKP.png",
- },
- {
- type: ["svg"],
- mime: "svg",
- icon: "/devTools/page/static/fileSys/SVG.png",
- },
- {
- type: ["png", "jpeg", "jpg", "webp", "bmp"],
- mime: "img",
- icon: "/devTools/page/static/fileSys/tupian.png",
- },
- {
- type: ["txt", "sql", "js", "css", "log", "json"],
- mime: "txt",
- icon: "/devTools/page/static/fileSys/txt.png",
- },
- {
- type: ["word"],
- mime: "word",
- icon: "/devTools/page/static/fileSys/word.png",
- },
- {
- type: ["zip", "rar", "gz", "7z"],
- mime: "zip",
- icon: "/devTools/page/static/fileSys/yasuo.png",
- },
- {
- type: ["mp3", "wma", "wav", "aac", "flac"],
- mime: "",
- icon: "/devTools/page/static/fileSys/yinpin.png",
- },
- ];
- export default {
- /**
- * 获取文件和目录列表
- */
- getDirFileList(path) {
- return new Promise((yes) => {
- // #ifdef APP-PLUS
- plus.io.resolveLocalFileSystemURL(path, function (entry) {
- if (entry.isDirectory) {
- let reader = entry.createReader();
- reader.readEntries(
- async (entries) => {
- let dirList = [];
- let fileList = [];
- for (let i = 0; i < entries.length; i++) {
- /**
- * @type {PlusIoDirectoryEntry}
- */
- const item = entries[i];
- let meta = await getMetaData(item)
- let row = {
- type: item.isDirectory ? 'dir' : 'file',
- name: item.name,
- fileType: getFileType(item.name),
- ...meta,
- }
- if (item.isDirectory) {
- dirList.push(row)
- } else {
- fileList.push(row)
- }
- }
- dirList = dirList.sort((a, b) => a.time > b.time)
- fileList = fileList.sort((a, b) => a.time > b.time)
- yes([
- ...dirList,
- ...fileList,
- ])
- },
- (e) => {
- console.log("readEntries error", e);
- uni.showToast({
- title: "文件读取失败: " + e.message,
- icon: "none",
- });
- yes([])
- }
- );
- } else {
- uni.showToast({
- title: "路径读取失败_b",
- icon: "none",
- });
- yes([])
- }
- }, () => {
- uni.showToast({
- title: "路径读取失败_a",
- icon: "none",
- });
- yes([])
- });
- // #endif
- })
- },
- /**
- * 获取文件图片
- */
- getFileIcon(type) {
- for (let i = 0; i < iconConfig.length; i++) {
- const item = iconConfig[i];
- for (let _i = 0; _i < item.type.length; _i++) {
- const typeName = item.type[_i];
- if (type == typeName) {
- return item.icon;
- }
- }
- }
- return "/devTools/page/static/fileSys/weizhiwenjian.png";
- }
- }
- /**
- * @param {PlusIoDirectoryEntry} entry
- */
- function getMetaData(entry) {
- return new Promise((yes) => {
- entry.getMetadata(function (metadata) {
- yes({
- size: metadata.size,
- time: metadata.modificationTime.getTime(),
- fileCount: metadata.fileCount,
- directoryCount: metadata.directoryCount,
- })
- }, function () {
- yes({
- size: 0,
- time: 0,
- fileCount: 0,
- directoryCount: 0,
- })
- });
- })
- }
- function getFileType(name) {
- if (typeof name == "string") {
- let tList = name.split(".");
- if (tList.length > 1) {
- return tList.pop().toLocaleLowerCase()
- } else {
- return ""
- }
- } else {
- return ""
- }
- }
|