uniapp 开发安卓/ios文件读写

发布时间 2023-09-07 16:09:30作者: 漫漫码农路

利用5+app native.js io文件管理模块

1.新建js文件
// 文件写入
export const writeFileIos = function(filename, data) {
	plus.io.requestFileSystem(
		plus.io.PUBLIC_DOCUMENTS, // 文件系统中的根目录
		fs => {
			// 创建或打开文件, fs.root是根目录操作对象,直接fs表示当前操作对象
			let a = fs.root.toURL()
			let dirPath = a + '/' + 'ry/' + filename + '.txt';
			fs.root.getFile(dirPath, {
				create: true // 文件不存在则创建
			}, fileEntry => {
				// 文件在手机中的路径
				console.log(fileEntry.fullPath, '文件在手机中的路径')
				fileEntry.createWriter(writer => {
					// 写入文件成功完成的回调函数
					// 写入数据
					writer.write(JSON.stringify(data));
					writer.onwrite = e => {
						console.log("写入数据成功");
					};
				})
			}, e => {
				console.log("getFile failed: " + e.message);
			});
		},
		e => {
			console.log(e.message);
		}
	);
}
// 文件读取
export const readFileIos = function(filename, callback) {
	plus.io.requestFileSystem(plus.io.PUBLIC_DOCUMENTS, function(fs) {
		// fs.root是根目录操作对象DirectoryEntry
		let a = fs.root.toURL()
		let dirPath = a + '/' + 'ry/' + filename + '.txt';
		// /var/mobile/Containers/Data/Application/8D4886B0-4900-4B9E-99C5-BF53F72CB0BA/Documents/Pandora/documents/_documents/a/mayimei.txt
		fs.root.getFile(dirPath, {
			create: false
		}, function(fileEntry) {
			console.log(fileEntry)
			fileEntry.file(function(file) {
				console.log(file)
				var fileReader = new plus.io.FileReader();
				fileReader.readAsText(file, 'utf-8');
				fileReader.onloadend = function(evt) {
					var news = [];
					var result = evt.target.result;
					if (result != "")
						console.log(result, '读取的内容啊啊啊啊')
					callback({
						state: 1,
						message: "读取成功!",
						data: result
					});
				}
				fileReader.onerror = e => {
					callback({
						state: 0,
						message: "读取失败!",
						data: result
					});
				}
			});
		}, e => {
			callback({
				state: e.code,
				message: e.message,
			});
		});
	})
}

// 文件删除
export const deleteFileIos = function(filename) {
	plus.io.requestFileSystem(plus.io.PUBLIC_DOCUMENTS, function(fs) {
		let a = fs.root.toURL();
		let dirPath = a + '/' + 'ry/' + filename + '.txt';
		fs.root.getFile(dirPath, {
				create: false
			},
			function(fileEntry) { // 删除这个地址对应的文件
				fileEntry.remove(function(entry) {
					console.log("删除文件成功")
				}, function(e) {
					console.log(e.message);
				})
			},
			function(err) {
				console.log(err, '删除失败啊啊啊')
			}
		)
	})

}

原文地址