文档管理中心
您当前浏览的HarmonyOS 5.0.0(API 12)文档归档不再维护,推荐您使用最新版本。详细请参考文档维护策略变更
FAQ应用框架开发本地数据和文件本地文件管理如何存储文件才不会跟随app卸载而删除

如何存储文件才不会跟随app卸载而删除

解决措施

如果是用户文件,比如用户在应用内主动保存的文件,那可以存在公共目录/storage/media/100/local/files,公共目录下的文件不会随着app卸载而删除。

参考代码

可以使用@ohos.file.picker中提供的save方法在公共目录创建文件,方法可以参考以下代码:

收起
自动换行
深色代码主题
复制
  1. import { BusinessError } from '@kit.BasicServicesKit';
  2. import { picker, fileIo } from '@kit.CoreFileKit';
  3. let uri: string = '';
  4. // 将content至公共目录
  5. export async function saveToUser(content: string) {
  6. try {
  7. let DocumentSaveOptions = new picker.DocumentSaveOptions();
  8. // 新建文件名
  9. DocumentSaveOptions.newFileNames = ['test.txt'];
  10. let documentPicker = new picker.DocumentViewPicker();
  11. documentPicker.save(DocumentSaveOptions).then((DocumentSaveResult: Array<string>) => {
  12. console.info('DocumentViewPicker.save successfully, uri: ' + JSON.stringify(DocumentSaveResult));
  13. uri = DocumentSaveResult[0];
  14. // 将content写入新建的文件内
  15. let file = fileIo.openSync(uri, fileIo.OpenMode.READ_WRITE);
  16. fileIo.writeSync(file.fd, content);
  17. }).catch((err: BusinessError) => {
  18. console.error('DocumentViewPicker.save failed with err: ' + JSON.stringify(err));
  19. });
  20. } catch (error) {
  21. let err: BusinessError = error as BusinessError;
  22. console.error('DocumentViewPicker failed with err: ' + err.message);
  23. }
  24. }
在 FAQ 中进行搜索
请输入您想要搜索的关键词