【web】一段创建本地文件夹的代码

跨平台文件夹创建
本文介绍了一种跨平台创建文件夹的方法,适用于多种设备。利用HTML5的File API,通过JavaScript实现本地文件系统的操作,包括文件夹的创建,并详细解释了代码流程。

一段创建本地文件夹的代码

document.addEventListener("deviceready", onDeviceReady, false);


function onDeviceReady() {
            // alert('ondeviceReady');
            // window.requestFileSystem = window.requestFileSystem || window.webkitRequestFileSystem;
            console.log("文档中心===========>软件准备就绪:设置检测文件存储目录开始.");
            window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function (fileSystem) {
                console.log("文档中心===========>检测临时文件存储目录方法");
                //util.appRootDirName 全局变量,这里是zgky
                fileSystem.root.getDirectory(filemanage_util.appRootDirName, {
                    create: true,
                    exclusive: false
                }, function (entry) {
                    //网上流传的资料中都是使用fullPath,在这里我获取到的是相对目录,在下载时使用会报错,所以换做了toURL()
                    //这是一个全局全局变量,用以保存路径
                    console.log("文档中心===========>创建文件夹成功,正在设置相关的参数!");
                    filemanage_util.fullPath = entry.toURL();
                    //  alert(util.fullPath);
                    console.log("文档中心===========>创建文件夹成功:" + filemanage_util.fullPath);
                    //console.log(util.fullPath);
                }, function () {
                    console.log("文档中心===========>创建文件夹失败!");
                });
                console.log("文档中心===========>检测临时文件目录方法结束!");
            }, function () {
                console.log("文档中心===========>创建文件夹失败");
            });
            console.log("文档中心===========>软件准备就绪:设置检测文件存储目录结束");
        };


其中  filemanage_util.fullPath 就是创建文件的路径

这是跨平台的创建文件夹,不像android那样还要通过 Environment.getExternalStorageDirectory() 的原生代码来创建





### 创建本地文件夹功能 在 Vue 3 和 TypeScript 环境下创建本地文件夹通常涉及前端与后端之间的交互,因为浏览器的安全策略不允许直接操作用户的文件系统。然而,在某些特定场景下(如 Electron 应用),可以直接访问文件系统。 对于 Web 应用程序而言,可以考虑使用服务器来处理文件系统的更改或将此功能封装在一个服务工作线程中。如果是在桌面环境中构建应用,则可利用 Node.js API 或者第三方库完成该任务。 #### 使用 Node.js 文件系统模块 (适用于Electron等环境) 当项目允许调用Node.js原生API时: ```typescript // src/utils/fileSystemHelper.ts import { mkdir, existsSync } from "fs"; export function createFolder(path: string): Promise<void> { return new Promise((resolve, reject) => { if (!existsSync(path)) { mkdir(path, { recursive: true }, err => { if (err !== null) { console.error(`Failed to create directory ${path}`, err); reject(err); } resolve(); }); } else { resolve(); // 如果目录已存在则立即解决Promise } }); } ``` 这段代码定义了一个名为 `createFolder` 的函数,它接收一个路径参数并尝试创建指定位置下的新文件夹。这里采用了回调风格的异步方法,并将其转换成更易于使用的 Promise 形式[^1]。 为了使上述代码能够在基于 Vue CLI 构建的应用里正常运作,需确保项目的 webpack 配置支持 CommonJS 模块化语法以及 Node.js 内置模块的加载能力。这可以通过适当调整 vite.config.ts 来实现[^2]。 需要注意的是,以上方案仅限于能够运行 Node.js 后端逻辑的情况下有效;如果是纯前端 web app 则无法直接执行此类操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值