uniapp iosApp H5+本地文件操作(写入修改删除等)

这篇具有很好参考价值的文章主要介绍了uniapp iosApp H5+本地文件操作(写入修改删除等)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

h5+ 地址 html5plus

以csv文件为例,写入读取保存修改删除文件内容,传输文件等文章来源地址https://www.toymoban.com/news/detail-727041.html

1.save 文件保存

function saveCsv(data,pathP,path){
	// #ifdef APP-PLUS
	return new Promise((resolve, reject) => {
		plus.io.requestFileSystem( plus.io.PUBLIC_DOCUMENTS, function( fs ) {
			// 通过fs.root获取DirectoryEntry对象进行操作
			 fs.root.getDirectory(pathP,{create:true},direEntry =>{
				plus.io.requestFileSystem(plus.io.PUBLIC_DOCUMENTS, fs => {
					fs.root.getFile(path, {create: true}, fileEntry => {
						fileEntry.createWriter(writer => {
							writer.onwrite = e => {
								resolve(`file://${e.target.fileName}`);
								// uni.showModal({
								// 	title: '提示',
								// 	content: `导出成功,文件路径为${e.target.fileName.replace('/storage/emulated/0', '')}`,
								// 	cancelText: '了解并关闭',
								// 	confirmText: '预览文件',
								// 	success: result => {
								// 		if (result.confirm) {
								// 			uni.openDocument({
								// 				filePath: `file://${e.target.fileName}`,
								// 			})
								// 		}
								// 	}
								// });
							}
							writer.write(data);
						}, writerErr => {
							resolve(500)
							uni.showToast({
								title: '导出文件失败,请检查是否有权限',
								icon: 'none'
							});
						})
					})
				})
			})
		}, fsErr => {
			uni.showToast({
				title: '导出文件失败,请检查是否有权限',
				icon: 'none'
			});
		})
	})
	// #endif	
}

// #ifdef APP-PLUS
let submitCsv = savedata.map(e=> JSON.stringify(e)).join("\n")saveCsv(submitCsv,`${user}/triallist/${_this.trialId}`,`${user}/triallist/${_this.trialId}/scoresubmit.csv`).then(path=>{
	console.log(path)
})
// #endif

2. read 读取

function readListCsv(path){
	let reader = null;
	let data=[];
	// #ifdef APP-PLUS
	return new Promise((resolve, reject) => {
		plus.io.requestFileSystem(plus.io.PUBLIC_DOCUMENTS,fs => {
			fs.root.getFile(path,{create:true},fileEntry=> {
				fileEntry.file( function ( file ) {
					reader = new plus.io.FileReader();
					reader.onloadend = function ( e ) {
						if(e.target.result){
						  //返回的data处理取决于存入时的操作,不同格式不同操作
							data = e.target.result.split('\n').map(e=> JSON.parse(e))
							resolve(data);
						}else{
							data = []
							resolve(data);
						}
					};
					reader.readAsText( file );
				}, function ( e ) {
					uni.showToast({
						title: e.message,
						icon: 'none'
					});
				});
			})
		})
	})
	// #endif
}

// #ifdef APP-PLUS
//自定义文件路径
readListCsv(`${user}/triallist/${this.trialId}/time.csv`).then(res=>{
	console.log(res)
})

3. delete 删除目录

//已存在目录,删除重建
let path = uni.getStorageSync('path') + `/${user}/triallist/${_this.trialId}`;
plus.io.resolveLocalFileSystemURL(path, function( entry ) {
	let directoryReader = entry.createReader(); //获取读取目录对象
	directoryReader.readEntries( function( entries ){
		console.log(entries.length);
		if (entries.length > 0) {
			 entry.removeRecursively(function(entry) {
				 callback();
				 //删除成功回调---获取不到。。。。    
			 }, function(e) {
				 //错误信息    
				 console.log(e.message + ' ?!')
			 })
		}
	})
})

4.upload 上传(uniapp)循环上传目录内文件

// #ifdef APP-PLUS
//使用uniapp上传需要上传文件获取uniapp生成的路径后,调用上传接口
updateResume(){
	let path = uni.getStorageSync('path') + `/${user}/triallist/${this.trialId}/......`
	plus.io.resolveLocalFileSystemURL(path, function( entry ) {
		var directoryReader = entry.createReader(); //获取读取目录对象
		directoryReader.readEntries( function( entries ){
			for(let i=0; i < entries.length; i++ ){
				uni.saveFile({
					tempFilePath: path + entries[i].name,
					success: function (res) {
						uni.uploadFile({
							url:NEV.BASE_URL +'/api/api..../add',
							filePath:res.savedFilePath,
							header: {
								'X-Access-Token':uni.getStorageSync('token'),
								'Authorization': 'Bearer ' + uni.getStorageSync('token'),
								"Content-Type": "multipart/form-data",
							},
							name:'MultipartFile',
							formData: {  //接口携带的参数
								trialId:_this.trialId,
							},
							success() {
								console.log('一个文件上传成功');
							},
							fail() {
								console.log('一个文件上传失败');
							}
						})
					},
					fail() {
						console.log('一个文件上传失败');
					}
				});
				console.log( entries[i].name );
			}
		}, function ( e ) {
			alert( "Read entries failed: " + e.message );
		} );
	});
	// #endif
}

到了这里,关于uniapp iosApp H5+本地文件操作(写入修改删除等)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于MFC的图书馆图书管理系统 VC++操作Excel文档的方法,读取,查询,写入,修改,删除

    VS2017加装MFC以及创建第一个MFC程序_赵满刚的博客-CSDN博客 MFC读取Excel文件+数据处理+写入Excel_土豪gold的博客-CSDN博客 VS2013 MFC连接Access数据库(ADO)详细版实例操作(含Combo Box读取数据库内容,附源码)_土豪gold的博客-CSDN博客_mfc连接access数据库 MFC 导入EXCEL到数据库_weixin_338

    2024年02月06日
    浏览(50)
  • C++文件操作实战:创建、写入、读取、修改文件一应俱全

      概述: 此C++示例详解文件操作:创建、删除、判断存在、写入、读取和修改文件内容。清晰演示了常见文件处理方法及源代码实现。 以下是一个简单的C++实例,演示如何进行文件操作,包括创建文件、删除文件、判断文件是否存在、向文件写入内容、读取文件内容以及修

    2024年03月17日
    浏览(50)
  • uniapp 修改本地文件名称

    uniapp下载文件本地saveFile之后,文件名是时间戳的形式。而且uniapp官网并没有文件修改的方法 折腾了一天,终于解决了。 直接上代码 使用plus.io的文件管理方法。(不得不吐槽一下,这个文档写的真的是云里雨雾) Tips:这个方法改的名字要带后缀的,也可以改成Promise方法 和

    2024年02月12日
    浏览(46)
  • 【VSCode】查找本地修改历史并恢复已删除文件

    在原先编好的代码里删删改改,后面发现越改越不像样,准备返回去重做,但注释掉的代码并不是全部,已经删了以前写好的部分。本以为自己是有存档的结果之后的代码偏偏没有存。 根据时间有个大致印象是9月13日左右,所以现在开始找时间相近的历史文件 根据[1]资料可

    2024年02月04日
    浏览(43)
  • Node.js-fs模块文件创建、删除、重命名、文件内容的写入、读取以及文件夹的相关操作

    异步写入:writeFile() 同步写入:writeFileSync() 异步追加写入:appendFile() 同步追加写入:appendFileSync() 方式一(appendFile): 方式二(writeFile): fs.createWriteStream( path [, options ] ) 程序打开一个文件是需要消耗资源的 ,流式写入可以减少打开关闭文件的次数。 流式写入方式适用于

    2024年02月14日
    浏览(104)
  • GIT | 基础操作 | 初始化 | 添加文件 | 修改文件 | 版本回退 | 撤销修改 | 删除文件

    Git(读音为/gɪt/)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。也是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。 我们这里就不多介绍这里的 GIT 了,百度百科和维基百科上都有很多介绍,我们这

    2024年02月05日
    浏览(52)
  • uniapp小技巧之选择本地文件(注意这个方法只适配微信小程序和h5,app端未适配)

    注意注意一定注意app端不能用,想要app端选择上传文件去插件市场寻找,或私信我,我告诉你方法

    2024年02月12日
    浏览(44)
  • hadoop的基础操作——Hadoop中创建、修改、查看、删除文件夹及文件

    一、实验目的 熟练掌握常用的hadoop shell命令 二、实验内容    1.学习在开启、关闭Hadoop 2.学习在Hadoop中创建、修改、查看、删除文件夹及文件 3.学习改变文件的权限及文件的拥有者 4.学习使用shell命令提交job任务 5.Hadoop安全模式的进入与退出 三、实验原理或流程 调用文件系

    2024年02月03日
    浏览(62)
  • git pull报错“您对下列文件的本地修改将被合并操作覆盖”

    现象: 我在有本地更改的情况下,拉取代码时会时常碰到一个error:您对下列文件的本地修改将被合并操作覆盖:详情见下方 error:您对下列文件的本地修改将被合并操作覆盖: 文件具体的路径 请在合并前提交或贮藏您的修改。 终止中 出现该报错的原因: 出现了代码冲突

    2024年02月16日
    浏览(53)
  • Python 文件处理指南:打开、读取、写入、追加、创建和删除文件

    文件处理是任何Web应用程序的重要部分。Python有多个用于创建、读取、更新和删除文件的函数。 在Python中处理文件的关键函数是open()函数。open()函数接受两个参数:文件名和模式。 有四种不同的方法(模式)可以打开文件: \\\"r\\\" - 读取 - 默认值。打开一个文件以进行读取,如

    2024年02月05日
    浏览(71)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包