@ohos.file.fileAccess/FileAccessHelper的move方法,使用含中文的uri时报错14300001

问题

开发中,使用FileAccessHelper的move方法,当传数字、字母的uri时,移动成功;当传含有中文的uri时,移动失败,报14300001。

log日志如下:
传数字、字母uri=datashare:///com.ohos.UserFile.ExternalFileManager/mnt/external/0033-4464/file

02-20 14:25:40.391 30473-30473/com.superred.filemanager E A01234/[FileManager-1.1.0.300]myPhone: move datashare:///com.ohos.UserFile.ExternalFileManager/mnt/external/0033-4464/file
02-20 14:25:40.392 437-655/? I C01700/RSS: SocPerfPlugin: socperf->EVENT_CLICK: 2
02-20 14:25:40.395 30473-30473/com.superred.filemanager I C03900/Ace: [flutter_ace_view.cpp(operator())-(0)] Mark 0 id Touch Event Processed
02-20 14:25:40.396 30473-30473/com.superred.filemanager I A01234/[FileManager-1.1.0.300]FileAcce: move success:undefineddatashare:///com.ohos.UserFile.ExternalFileManager/mnt/external/0033-4464/file -> datashare:///com.ohos.UserFile.ExternalFileManager/mnt/external/0033-4464/move

传含中文的uri=datashare:///com.ohos.UserFile.ExternalFileManager/mnt/external/0033-4464/file文件

02-20 14:30:12.131 30473-30473/com.superred.filemanager E A01234/[FileManager-1.1.0.300]myPhone: move datashare:///com.ohos.UserFile.ExternalFileManager/mnt/external/0033-4464/file文件
02-20 14:30:12.131 30473-30489/com.superred.filemanager E C0430a/FileAccessFwk: [(Move:259)]fail to WriteParcelable sourceFile
02-20 14:30:12.131 30473-30489/com.superred.filemanager E C0430a/FileAccessFwk: [(Move:536)]Move get result error, code:14300001
02-20 14:30:12.131 994-2103/? I C02f01/ATMServ: [GetTokenType]:tokenID: 0x2806035f
02-20 14:30:12.131 994-2103/? I C02f01/ATMServ: [GetNativeTokenInfo]:tokenID: 0x2806035f
02-20 14:30:12.131 1008-1764/? I C02f01/ATMProxy: [GetNativeTokenInfo]:result from server data = 0
02-20 14:30:12.132 1008-1764/? I C0290a/PowerState: [device_state_action.cpp:62] GetDisplayState# Get display state: 2
02-20 14:30:12.132 1008-1764/? I C0290a/PowerState: [device_state_action.cpp:89] SetDisplayState# Action: SetDisplayState: 2, 1000
02-20 14:30:12.132 1008-1764/? I C0290a/PowerState: [device_state_action.cpp:62] GetDisplayState# Get display state: 2
02-20 14:30:12.132 1008-1764/? I C0290a/PowerState: [device_state_action.cpp:93] SetDisplayState# Already ins state: 2
02-20 14:30:12.132 437-1935/? I C01700/RSS: ResSchedService::ReportData from ipc receive data resType = 9:<private>, value = 2.
02-20 14:30:12.133 437-655/? I C01700/RSS: SocPerfPlugin: socperf->EVENT_CLICK: 2
02-20 14:30:12.133 1008-1764/? W C02800/TimeCostChk: in ~TimeCostChk, Time cost overtime (3372,(us)>300(us)) when Reason:ClientMsgHandler::OnMsgHandler,chk:overtime 300(us),param1:13,param2:0
02-20 14:30:12.135 30473-30473/com.superred.filemanager I C03900/Ace: [flutter_ace_view.cpp(operator())-(0)] Mark 0 id Touch Event Processed
02-20 14:30:12.136 30473-30473/com.superred.filemanager E A01234/[FileManager-1.1.0.300]FileAcce: move fail:{"code":14300001}datashare:///com.ohos.UserFile.ExternalFileManager/mnt/external/0033-4464/file文件 -> datashare:///com.ohos.UserFile.ExternalFileManager/mnt/external/0033-4464/move
02-20 14:30:12.136 30473-30473/com.superred.filemanager E A01234/[FileManager-1.1.0.300]myPhone: move err: {"code":14300001}

环境

DevEco Studio 3.1.1 Release
OpenHarmony/SDK-full-3.2.14.2

API

地址:https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-core-file-kit/js-apis-fileAccess-sys.md#move

  move(sourceFile: string, destFile: string, callback: AsyncCallback<string>) : void

  以异步方法移动文件(夹),返回移动后文件(夹)的uri。使用callback异步回调。目前仅支持设备内移动,跨设备不支持移动。

  系统能力:SystemCapability.FileManagement.UserFileService

  需要权限:ohos.permission.FILE_ACCESS_MANAGER

  参数:

  参数名    类型    必填    说明
  sourceFile    string    是    待移动的源文件(夹)的uri
  destFile    string    是    目标文件夹的uri
  callback    AsyncCallback<string>    是    新路径下的文件(夹)的uri

  示例:

  import { BusinessError } from '@ohos.base';
  // 以内置存储目录为例
  // 示例代码sourceFile destFile表示Download目录下文件和文件夹,该uri是对应的fileInfo中uri
  // 开发者应根据自己实际获取的uri进行开发
  let sourceFile: string = "file://docs/storage/Users/currentUser/Download/1.txt";
  let destFile: string = "file://docs/storage/Users/currentUser/Download/test";
  try {
 // fileAccessHelper 参考 fileAccess.createFileAccessHelper 示例代码获取
 fileAccessHelper.move(sourceFile, destFile, (err: BusinessError, fileUri: string) => {
   if (err) {
     console.error("Failed to move in async, errCode:" + err.code + ", errMessage:" + err.message);
   }
   console.log("move sucess, fileUri: " + JSON.stringify(fileUri));
 });
  } catch (err) {
 let error: BusinessError = err as BusinessError;
 console.error("move failed, errCode:" + error.code + ", errMessage:" + error.message);
  }

错误码14300001

地址:https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-core-file-kit/errorcode-filemanagement.md#14300001-ipc%E9%80%9A%E4%BF%A1%E5%A4%B1%E8%B4%A5

公共文件访问错误码
14300001 IPC通信失败
错误信息

IPC error

可能原因

1.server端服务不在。

2.extension机制异常。

处理步骤

检查server端服务是否存在。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值