HarmonyOS鸿蒙Next中我用@ohos.file.fs生成了一个新文件夹,但是在手机的文件功能里看不到这个文件夹,"/data/storage/el2/base/haps/entry/files/text",请问是什么原因
3 回复
您创建的文件夹路径是沙箱路径,没办法直接在手机上查看路径,您可以使用DevEco-Studio 查看沙箱路径
点击 右下角Device File Browser,切换真机,查看 /data/storage/el2/base/haps/entry/files/validate_bjca 路径
如果您想下载文件到手机上的指定目录
您可以参考如下demo:
import common from '@ohos.app.ability.common';
import fs from '@ohos.file.fs';
import request from '@ohos.request';
import { BusinessError } from '@ohos.base';
import buffer from '@ohos.buffer';
import { picker } from '@kit.CoreFileKit';
@Entry
@Component
struct Index {
build() {
Button().onClick(() => {
let context = getContext(this) as common.UIAbilityContext;
let filePath = context.filesDir + "/testeser.pdf";
let url = "XXX.pdf"
try {
request.downloadFile(context, {
url: url,
filePath: filePath
}).then((data: request.DownloadTask) => {
let downloadTask: request.DownloadTask = data;
downloadTask.on('complete', () => {
console.info('download complete');
let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
let arrayBuffer = new ArrayBuffer(4096000);
let readLen = fs.readSync(file.fd, arrayBuffer);
let buf = buffer.from(arrayBuffer, 0, readLen);
console.info(`content of File: ${buf.toString()}`);
let writeLen = fs.writeSync(file.fd, arrayBuffer);
fs.closeSync(file);
const documentSaveOptions = new picker.DocumentSaveOptions(); // 创建文件管理器选项实例
let uris: Array<string> = [];
const documentViewPicker = new picker.DocumentViewPicker(); // 创建文件选择器实例
documentViewPicker.save(documentSaveOptions).then((documentSaveResult: Array<string>) => {
uris = documentSaveResult;
console.info('documentViewPicker.save to file succeed and uris are:' + uris);
let uri = uris[0];
let file2 = fs.openSync(uri, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
let writeLen2 = fs.writeSync(file2.fd, arrayBuffer);
fs.closeSync(file2);
}).catch((err: BusinessError) => {
console.error(`Invoke documentViewPicker.save failed, code is ${err.code}, message is ${err.message}`);
})
})
let failCallback = () => {
console.info('Download task fail.');
};
downloadTask.on('fail', failCallback);
}).catch((err: BusinessError) => {
console.error(`downLoadFileTask failed, code is ${err.code}, message is ${err.message}`);
});
} catch (error) {
console.error(`downLoadFileTask failed, code is ${error.code}, message is ${error.message}`);
}
})
}
}
您只能先保存文件到文件管理处如上述代码所示,才能在手机上的文件管理处查看,类似于fs.mkdirSync或者 fs.rmdir 都只能操作沙箱目录,不能操作手机上的文件管理处
更多关于HarmonyOS鸿蒙Next中我用@ohos.file.fs生成了一个新文件夹,但是在手机的文件功能里看不到这个文件夹,"/data/storage/el2/base/haps/entry/files/text",请问是什么原因的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next中,使用@ohos.file.fs
生成的文件夹路径为/data/storage/el2/base/haps/entry/files/text
,该路径属于应用的沙盒目录。沙盒目录是应用私有的,其他应用和系统的文件管理器无法直接访问。因此,在手机的文件功能里看不到这个文件夹是正常现象。如果需要在文件管理器中查看,可以将文件夹创建在公共目录下,如/storage/emulated/0/Download
。