diff --git a/bundle.json b/bundle.json index ab54d4ccdf7641513c9565b379245c46fbb6f500..d3a857cb3acdb54970552b0fa02aae73bafd592e 100644 --- a/bundle.json +++ b/bundle.json @@ -13,7 +13,7 @@ "name": "user_file_service", "subsystem": "filemanagement", "syscap": [ - "SystemCapability.FileManagement.FileManagerService" + "SystemCapability.FileManagement.UserFileService" ], "adapted_system_type": [ "standard" diff --git a/frameworks/innerkits/file_access/include/file_access_ext_ability.h b/frameworks/innerkits/file_access/include/file_access_ext_ability.h index ffc0b19dcfde2d51daf8109641b1509aaa8d9ccf..09e724993dbc019ad139912166d79599a129c996 100644 --- a/frameworks/innerkits/file_access/include/file_access_ext_ability.h +++ b/frameworks/innerkits/file_access/include/file_access_ext_ability.h @@ -46,10 +46,9 @@ public: virtual int Delete(const Uri &sourceFile); virtual int Move(const Uri &sourceFile, const Uri &targetParent, Uri &newFile); virtual int Rename(const Uri &sourceFile, const std::string &displayName, Uri &newFile); - virtual std::vector ListFile(const Uri &sourceFile); - virtual std::vector GetRoots(); - virtual int IsFileExist(const Uri &uri, bool &isExist); + virtual std::vector GetRoots(); + virtual int Access(const Uri &uri, bool &isExist); virtual int RegisterNotify(sptr ¬ify); virtual int UnregisterNotify(sptr ¬ify); virtual int Notify(const NotifyMessage &message); diff --git a/frameworks/innerkits/file_access/include/file_access_ext_proxy.h b/frameworks/innerkits/file_access/include/file_access_ext_proxy.h index ff4e0872773e9f0b1ed44fa934051c29a7054388..9a9a82c3f1729d6cc83e059e41261d9c2b00b4cd 100644 --- a/frameworks/innerkits/file_access/include/file_access_ext_proxy.h +++ b/frameworks/innerkits/file_access/include/file_access_ext_proxy.h @@ -42,10 +42,9 @@ public: virtual int Delete(const Uri &sourceFile) override; virtual int Move(const Uri &sourceFile, const Uri &targetParent, Uri &newFile) override; virtual int Rename(const Uri &sourceFile, const std::string &displayName, Uri &newFile) override; - virtual std::vector ListFile(const Uri &sourceFile) override; - virtual std::vector GetRoots() override; - virtual int IsFileExist(const Uri &uri, bool &isExist) override; + virtual std::vector GetRoots() override; + virtual int Access(const Uri &uri, bool &isExist) override; virtual int RegisterNotify(sptr ¬ify) override; virtual int UnregisterNotify(sptr ¬ify) override; private: diff --git a/frameworks/innerkits/file_access/include/file_access_ext_stub.h b/frameworks/innerkits/file_access/include/file_access_ext_stub.h index 8893926e3baac7920faf863f8fb3e075df259e0e..e1ab83e2aa9c559a4606f3510603ef75d6967488 100644 --- a/frameworks/innerkits/file_access/include/file_access_ext_stub.h +++ b/frameworks/innerkits/file_access/include/file_access_ext_stub.h @@ -43,7 +43,7 @@ private: ErrCode CmdRename(MessageParcel &data, MessageParcel &reply); ErrCode CmdListFile(MessageParcel &data, MessageParcel &reply); ErrCode CmdGetRoots(MessageParcel &data, MessageParcel &reply); - ErrCode CmdIsFileExist(MessageParcel &data, MessageParcel &reply); + ErrCode CmdAccess(MessageParcel &data, MessageParcel &reply); ErrCode CmdRegisterNotify(MessageParcel &data, MessageParcel &reply); ErrCode CmdUnregisterNotify(MessageParcel &data, MessageParcel &reply); bool CheckCallingPermission(const std::string &permission); diff --git a/frameworks/innerkits/file_access/include/file_access_ext_stub_impl.h b/frameworks/innerkits/file_access/include/file_access_ext_stub_impl.h index d72745dd30eea65f13052bb68d59b0f6e2427700..225990db35e02a9b5900ad0ba60fb13cc7c659bb 100644 --- a/frameworks/innerkits/file_access/include/file_access_ext_stub_impl.h +++ b/frameworks/innerkits/file_access/include/file_access_ext_stub_impl.h @@ -41,8 +41,8 @@ public: int Move(const Uri &sourceFile, const Uri &targetParent, Uri &newFile) override; int Rename(const Uri &sourceFile, const std::string &displayName, Uri &newFile) override; std::vector ListFile(const Uri &sourceFileUri) override; - std::vector GetRoots() override; - int IsFileExist(const Uri &uri, bool &isExist) override; + std::vector GetRoots() override; + int Access(const Uri &uri, bool &isExist) override; int RegisterNotify(sptr ¬ify) override; int UnregisterNotify(sptr ¬ify) override; diff --git a/frameworks/innerkits/file_access/include/file_access_extension_info.h b/frameworks/innerkits/file_access/include/file_access_extension_info.h index ab4719dbb241a0b4666e5f57b476693e4a05b255..7254fd482d27ef4bfe222b5e9e657c9642e6a41e 100644 --- a/frameworks/innerkits/file_access/include/file_access_extension_info.h +++ b/frameworks/innerkits/file_access/include/file_access_extension_info.h @@ -24,35 +24,45 @@ namespace OHOS { namespace FileAccessFwk { -enum DeviceType { - DEVICE_LOCAL_DISK = 1, // Local c,d... disk - DEVICE_SHARED_DISK, // Multi-user shared disk - DEVICE_SHARED_TERMINAL, // Distributed networking terminal device - DEVICE_NETWORK_NEIGHBORHOODS, // Network neighbor device - DEVICE_EXTERNAL_MTP, // MTP device - DEVICE_EXTERNAL_USB, // USB device - DEVICE_EXTERNAL_CLOUD // Cloud disk device -}; +/** + * Indicates the type of the device. + */ +constexpr int32_t DEVICE_LOCAL_DISK = 1; // Local c,d... disk +constexpr int32_t DEVICE_SHARED_DISK = 2; // Multi-user shared disk +constexpr int32_t DEVICE_SHARED_TERMINAL = 3; // Distributed networking terminal device +constexpr int32_t DEVICE_NETWORK_NEIGHBORHOODS = 4; // Network neighbor device +constexpr int32_t DEVICE_EXTERNAL_MTP = 5; // MTP device +constexpr int32_t DEVICE_EXTERNAL_USB = 6; // USB device +constexpr int32_t DEVICE_EXTERNAL_CLOUD = 7; // Cloud disk device + +/** + * Indicates the supported capabilities of the device. + */ +const int32_t DEVICE_FLAG_SUPPORTS_READ = 1; +const int32_t DEVICE_FLAG_SUPPORTS_WRITE = 1 << 1; + +/** + * Indicates the supported capabilities of the file or directory. + */ +const int32_t DOCUMENT_FLAG_REPRESENTS_FILE = 1; +const int32_t DOCUMENT_FLAG_REPRESENTS_DIR = 1 << 1; +const int32_t DOCUMENT_FLAG_SUPPORTS_READ = 1 << 2; +const int32_t DOCUMENT_FLAG_SUPPORTS_WRITE = 1 << 3; struct FileInfo : public virtual OHOS::Parcelable { public: - Uri uri = Uri(""); - std::string fileName; - std::string mode; + std::string uri { "" }; + std::string fileName { "" }; + int32_t mode; int64_t size {0}; int64_t mtime {0}; std::string mimeType; bool ReadFromParcel(Parcel &parcel) { - std::unique_ptr uriInfo(parcel.ReadParcelable()); - if (uriInfo == nullptr) { - return false; - } - uri = *uriInfo; - + uri = parcel.ReadString(); fileName = parcel.ReadString(); - mode = parcel.ReadString(); + mode = parcel.ReadInt32(); size = parcel.ReadInt64(); mtime = parcel.ReadInt64(); mimeType = parcel.ReadString(); @@ -61,13 +71,13 @@ public: virtual bool Marshalling(Parcel &parcel) const override { - if (!parcel.WriteParcelable(&uri)) { + if (!parcel.WriteString(uri)) { return false; } if (!parcel.WriteString(fileName)) { return false; } - if (!parcel.WriteString(mode)) { + if (!parcel.WriteInt32(mode)) { return false; } if (!parcel.WriteInt64(size)) { @@ -97,52 +107,42 @@ public: } }; -struct DeviceInfo : public virtual OHOS::Parcelable { +struct RootInfo : public virtual OHOS::Parcelable { public: - Uri uri = Uri(""); + int32_t deviceType; + std::string uri; std::string displayName; - std::string deviceId; - uint32_t flags {0}; - DeviceType type; + int32_t deviceFlags {0}; bool ReadFromParcel(Parcel &parcel) { - std::unique_ptr uriInfo(parcel.ReadParcelable()); - if (uriInfo == nullptr) { - return false; - } - uri = *uriInfo; - + deviceType = parcel.ReadInt32(); + uri = parcel.ReadString(); displayName = parcel.ReadString(); - deviceId = parcel.ReadString(); - flags = parcel.ReadUint32(); - type = (DeviceType)parcel.ReadInt32(); + deviceFlags = parcel.ReadInt32(); return true; } virtual bool Marshalling(Parcel &parcel) const override { - if (!parcel.WriteParcelable(&uri)) { - return false; - } - if (!parcel.WriteString(displayName)) { + if (!parcel.WriteInt32(deviceType)) { return false; } - if (!parcel.WriteString(deviceId)) { + if (!parcel.WriteString(uri)) { return false; } - if (!parcel.WriteUint32(flags)) { + if (!parcel.WriteString(displayName)) { return false; } - if (!parcel.WriteInt32((int32_t)type)) { + if (!parcel.WriteInt32(deviceFlags)) { return false; } return true; } - static DeviceInfo *Unmarshalling(Parcel &parcel) + static RootInfo *Unmarshalling(Parcel &parcel) { - DeviceInfo *info = new (std::nothrow) DeviceInfo(); + RootInfo *info = new (std::nothrow) RootInfo(); if (info == nullptr) { return nullptr; } @@ -154,13 +154,6 @@ public: return info; } }; - -const uint32_t FLAG_SUPPORTS_THUMBNAIL = 1; -const uint32_t FLAG_SUPPORTS_WRITE = 1 << 1; -const uint32_t FLAG_SUPPORTS_READ = 1 << 2; -const uint32_t FLAG_SUPPORTS_DELETE = 1 << 3; -const uint32_t FLAG_SUPPORTS_RENAME = 1 << 4; -const uint32_t FLAG_SUPPORTS_MOVE = 1 << 5; } // namespace FileAccessFwk } // namespace OHOS #endif // FILE_ACCESS_EXTENSION_INFO_H \ No newline at end of file diff --git a/frameworks/innerkits/file_access/include/file_access_helper.h b/frameworks/innerkits/file_access/include/file_access_helper.h index f872fbb86f82b918f13de5d0c3c820ed48cd9d8d..ef04a98d186361f52ce1336b76051718712aa45f 100644 --- a/frameworks/innerkits/file_access/include/file_access_helper.h +++ b/frameworks/innerkits/file_access/include/file_access_helper.h @@ -58,7 +58,7 @@ public: const std::vector &wants); bool Release(); - int IsFileExist(Uri &uri, bool &isExist); + int Access(Uri &uri, bool &isExist); int OpenFile(Uri &uri, int flags); int CreateFile(Uri &parent, const std::string &displayName, Uri &newFile); int Mkdir(Uri &parent, const std::string &displayName, Uri &newDir); @@ -66,7 +66,7 @@ public: int Move(Uri &sourceFile, Uri &targetParent, Uri &newFile); int Rename(Uri &sourceFile, const std::string &displayName, Uri &newFile); std::vector ListFile(Uri &sourceFile); - std::vector GetRoots(); + std::vector GetRoots(); int On(std::shared_ptr &callback); int Off(); private: @@ -81,8 +81,7 @@ private: void AddFileAccessDeathRecipient(const sptr &token); void OnSchedulerDied(const wptr &remote); - std::shared_ptr GetConnectInfo(const std::string &key); - std::shared_ptr GetConnectInfo(Uri &uri); + std::shared_ptr GetConnectInfo(const std::string &bundleName); std::shared_ptr GetConnectInfo(const AAFwk::Want &want); void InsertConnectInfo(const std::string &key, const AAFwk::Want &want, @@ -96,6 +95,8 @@ private: static std::string GetKeyOfWantsMap(const AAFwk::Want &want); sptr callerDeathRecipient_ = nullptr; + + std::mutex notifyAgentMutex_; sptr notifyAgent_ = nullptr; }; diff --git a/frameworks/innerkits/file_access/include/ifile_access_ext_base.h b/frameworks/innerkits/file_access/include/ifile_access_ext_base.h index 63ab8bfd778b3b407d03ecc51e7bbb2fffdb8d41..4823a7dc0eecda2b11df5cdb69ecd83eaa638987 100644 --- a/frameworks/innerkits/file_access/include/ifile_access_ext_base.h +++ b/frameworks/innerkits/file_access/include/ifile_access_ext_base.h @@ -41,7 +41,7 @@ public: CMD_RENAME, CMD_LIST_FILE, CMD_GET_ROOTS, - CMD_IS_FILE_EXIST, + CMD_ACCESS, CMD_REGISTER_NOTIFY, CMD_UNREGISTER_NOTIFY }; @@ -52,10 +52,9 @@ public: virtual int Delete(const Uri &sourceFile) = 0; virtual int Move(const Uri &sourceFile, const Uri &targetParent, Uri &newFile) = 0; virtual int Rename(const Uri &sourceFile, const std::string &displayName, Uri &newFile) = 0; - virtual std::vector ListFile(const Uri &sourceFile) = 0; - virtual std::vector GetRoots() = 0; - virtual int IsFileExist(const Uri &uri, bool &isExist) = 0; + virtual std::vector GetRoots() = 0; + virtual int Access(const Uri &uri, bool &isExist) = 0; virtual int RegisterNotify(sptr ¬ify) = 0; virtual int UnregisterNotify(sptr ¬ify) = 0; }; diff --git a/frameworks/innerkits/file_access/include/js_file_access_ext_ability.h b/frameworks/innerkits/file_access/include/js_file_access_ext_ability.h index 66d4a8f27976fa1f008d04a2fb808dad4907553e..cb86a899d7c8c53f0b69a425aaf10b84203ccb2a 100644 --- a/frameworks/innerkits/file_access/include/js_file_access_ext_ability.h +++ b/frameworks/innerkits/file_access/include/js_file_access_ext_ability.h @@ -67,8 +67,8 @@ public: int Move(const Uri &sourceFile, const Uri &targetParent, Uri &newFile) override; int Rename(const Uri &sourceFile, const std::string &displayName, Uri &newFile) override; std::vector ListFile(const Uri &sourceFile) override; - std::vector GetRoots() override; - int IsFileExist(const Uri &uri, bool &isExist) override; + std::vector GetRoots() override; + int Access(const Uri &uri, bool &isExist) override; private: NativeValue* CallObjectMethod(const char *name, NativeValue * const *argv = nullptr, size_t argc = 0); diff --git a/frameworks/innerkits/file_access/include/napi_common_fileaccess.h b/frameworks/innerkits/file_access/include/napi_common_fileaccess.h index c01347e425443706d097d5a16fbeaaae538ebfcc..bd0dc4d648bfd1d41a4a4cba4fd53f62b44f3659 100644 --- a/frameworks/innerkits/file_access/include/napi_common_fileaccess.h +++ b/frameworks/innerkits/file_access/include/napi_common_fileaccess.h @@ -45,11 +45,11 @@ bool UnwrapFileInfo(napi_env env, napi_value param, FileInfo &fileInfo); napi_value WrapArrayFileInfoToJS(napi_env env, const std::vector &fileInfoVec); bool UnwrapArrayFileInfoFromJS(napi_env env, napi_value param, std::vector &fileInfoVec); -napi_value WrapDeviceInfo(napi_env env, const DeviceInfo &deviceInfo); -bool UnwrapDeviceInfo(napi_env env, napi_value param, DeviceInfo &deviceInfo); +napi_value WrapRootInfo(napi_env env, const RootInfo &rootInfo); +bool UnwrapRootInfo(napi_env env, napi_value param, RootInfo &rootInfo); -napi_value WrapArrayDeviceInfoToJS(napi_env env, const std::vector &deviceInfoVec); -bool UnwrapArrayDeviceInfoFromJS(napi_env env, napi_value param, std::vector &deviceInfoVec); +napi_value WrapArrayRootInfoToJS(napi_env env, const std::vector &rootInfoVec); +bool UnwrapArrayRootInfoFromJS(napi_env env, napi_value param, std::vector &rootInfoVec); napi_value WrapArrayWantToJS(napi_env env, const std::vector &wantVec); bool UnwrapArrayWantFromJS(napi_env env, napi_value param, std::vector &wantVec); diff --git a/frameworks/innerkits/file_access/include/notify/file_access_notify_common.h b/frameworks/innerkits/file_access/include/notify/file_access_notify_common.h index d53b3b9a68c61480484c7dd0dcce5add63fe9999..93c648af5e9ed4b82c57b5313b2237241811ce0c 100644 --- a/frameworks/innerkits/file_access/include/notify/file_access_notify_common.h +++ b/frameworks/innerkits/file_access/include/notify/file_access_notify_common.h @@ -24,39 +24,37 @@ namespace OHOS { namespace FileAccessFwk { -enum NotifyType { - NOTIFY_DEVICE_ONLINE = 1, - NOTIFY_DEVICE_OFFLINE -}; +constexpr int32_t NOTIFY_DEVICE_ONLINE = 1; +constexpr int32_t NOTIFY_DEVICE_OFFLINE = 2; struct NotifyMessage : public virtual OHOS::Parcelable { public: - DeviceType deviceType; - NotifyType notifyType; + int32_t deviceType; + int32_t notifyType; std::string srcUri; // source uri when notifyType is (NOTIFY_FILE_MOVE/NOTIFY_FILE_RENAME), other case is "". std::string dstUri; // destination uri for all notifyType NotifyMessage() = default; - NotifyMessage(const DeviceType deviceTypeIn, const NotifyType ¬ifyTypeIn, const std::string &srcUriIn, + NotifyMessage(const int32_t deviceTypeIn, const int32_t notifyTypeIn, const std::string &srcUriIn, const std::string &dstUriIn) : deviceType(deviceTypeIn), notifyType(notifyTypeIn), srcUri(srcUriIn), dstUri(dstUriIn) {} void ReadFromParcel(Parcel &parcel) { - deviceType = (DeviceType)parcel.ReadInt32(); - notifyType = (NotifyType)parcel.ReadInt32(); + deviceType = parcel.ReadInt32(); + notifyType = parcel.ReadInt32(); srcUri = parcel.ReadString(); dstUri = parcel.ReadString(); } virtual bool Marshalling(Parcel &parcel) const override { - if (!parcel.WriteInt32((int32_t)deviceType)) { + if (!parcel.WriteInt32(deviceType)) { HILOG_ERROR("NotifyMessage Unmarshalling error:write deviceType fail."); return false; } - if (!parcel.WriteInt32((int32_t)notifyType)) { + if (!parcel.WriteInt32(notifyType)) { HILOG_ERROR("NotifyMessage Unmarshalling error:write notifyType fail."); return false; } diff --git a/frameworks/innerkits/file_access/src/file_access_ext_ability.cpp b/frameworks/innerkits/file_access/src/file_access_ext_ability.cpp index cc674d2ba623c2a62acdde562cf0676896911811..6c7c33730e52cc28b8dd78c9bb905d30b465af1d 100644 --- a/frameworks/innerkits/file_access/src/file_access_ext_ability.cpp +++ b/frameworks/innerkits/file_access/src/file_access_ext_ability.cpp @@ -63,49 +63,58 @@ void FileAccessExtAbility::Init(const std::shared_ptr &recor int FileAccessExtAbility::OpenFile(const Uri &uri, const int flags) { - return ERR_OK; + HILOG_ERROR("FileAccessExtAbility::OpenFile Undefined operation"); + return ERR_OPERATION_NOT_SUPPORT; } int FileAccessExtAbility::CreateFile(const Uri &parent, const std::string &displayName, Uri &newFile) { - return ERR_OK; + HILOG_ERROR("FileAccessExtAbility::CreateFile Undefined operation"); + return ERR_OPERATION_NOT_SUPPORT; } int FileAccessExtAbility::Mkdir(const Uri &parent, const std::string &displayName, Uri &newFile) { - return ERR_OK; + HILOG_ERROR("FileAccessExtAbility::Mkdir Undefined operation"); + return ERR_OPERATION_NOT_SUPPORT; } int FileAccessExtAbility::Delete(const Uri &sourceFile) { - return ERR_OK; + HILOG_ERROR("FileAccessExtAbility::Delete Undefined operation"); + return ERR_OPERATION_NOT_SUPPORT; } int FileAccessExtAbility::Move(const Uri &sourceFile, const Uri &targetParent, Uri &newFile) { - return ERR_OK; + HILOG_ERROR("FileAccessExtAbility::Move Undefined operation"); + return ERR_OPERATION_NOT_SUPPORT; } int FileAccessExtAbility::Rename(const Uri &sourceFile, const std::string &displayName, Uri &newFile) { - return ERR_OK; + HILOG_ERROR("FileAccessExtAbility::Rename Undefined operation"); + return ERR_OPERATION_NOT_SUPPORT; } std::vector FileAccessExtAbility::ListFile(const Uri &sourceFile) { std::vector vec; + HILOG_ERROR("FileAccessExtAbility::ListFile Undefined operation"); return vec; } -std::vector FileAccessExtAbility::GetRoots() +std::vector FileAccessExtAbility::GetRoots() { - std::vector vec; + std::vector vec; + HILOG_ERROR("FileAccessExtAbility::GetRoots Undefined operation"); return vec; } -int FileAccessExtAbility::IsFileExist(const Uri &uri, bool &isExist) +int FileAccessExtAbility::Access(const Uri &uri, bool &isExist) { - return ERR_OK; + HILOG_ERROR("FileAccessExtAbility::IsFileExist Undefined operation"); + return ERR_OPERATION_NOT_SUPPORT; } bool FileAccessExtAbility::GetNotifyManager() diff --git a/frameworks/innerkits/file_access/src/file_access_ext_proxy.cpp b/frameworks/innerkits/file_access/src/file_access_ext_proxy.cpp index 1f5d7370e635d45cb9b199d12b293a5937745a43..013236fcde7656275b8943ca85fd83b9b6bee1a3 100644 --- a/frameworks/innerkits/file_access/src/file_access_ext_proxy.cpp +++ b/frameworks/innerkits/file_access/src/file_access_ext_proxy.cpp @@ -366,10 +366,10 @@ std::vector FileAccessExtProxy::ListFile(const Uri &sourceFile) return vec; } -std::vector FileAccessExtProxy::GetRoots() +std::vector FileAccessExtProxy::GetRoots() { StartTrace(HITRACE_TAG_FILEMANAGEMENT, "GetRoots"); - std::vector vec; + std::vector vec; MessageParcel data; if (!data.WriteInterfaceToken(FileAccessExtProxy::GetDescriptor())) { HILOG_ERROR("WriteInterfaceToken failed"); @@ -389,9 +389,9 @@ std::vector FileAccessExtProxy::GetRoots() vec.clear(); uint64_t count = reply.ReadUint64(); for (uint64_t i = 0; i < count; i++) { - std::unique_ptr deviceInfo(reply.ReadParcelable()); - if (deviceInfo != nullptr) { - vec.push_back(*deviceInfo); + std::unique_ptr rootInfo(reply.ReadParcelable()); + if (rootInfo != nullptr) { + vec.push_back(*rootInfo); } } @@ -399,9 +399,9 @@ std::vector FileAccessExtProxy::GetRoots() return vec; } -int FileAccessExtProxy::IsFileExist(const Uri &uri, bool &isExist) +int FileAccessExtProxy::Access(const Uri &uri, bool &isExist) { - StartTrace(HITRACE_TAG_FILEMANAGEMENT, "IsFileExist"); + StartTrace(HITRACE_TAG_FILEMANAGEMENT, "Access"); MessageParcel data; if (!data.WriteInterfaceToken(FileAccessExtProxy::GetDescriptor())) { HILOG_ERROR("WriteInterfaceToken failed"); @@ -423,7 +423,7 @@ int FileAccessExtProxy::IsFileExist(const Uri &uri, bool &isExist) MessageParcel reply; MessageOption option; - int32_t err = Remote()->SendRequest(CMD_IS_FILE_EXIST, data, reply, option); + int32_t err = Remote()->SendRequest(CMD_ACCESS, data, reply, option); if (err != NO_ERROR) { HILOG_ERROR("fail to SendRequest. err: %{public}d", err); FinishTrace(HITRACE_TAG_FILEMANAGEMENT); diff --git a/frameworks/innerkits/file_access/src/file_access_ext_stub.cpp b/frameworks/innerkits/file_access/src/file_access_ext_stub.cpp index 2884e2e72b0547774719c3af54c2594a92f9a93e..725711cf9a5e288e98a3bbfe5282518d32a69eb0 100644 --- a/frameworks/innerkits/file_access/src/file_access_ext_stub.cpp +++ b/frameworks/innerkits/file_access/src/file_access_ext_stub.cpp @@ -48,7 +48,7 @@ FileAccessExtStub::FileAccessExtStub() stubFuncMap_[CMD_RENAME] = &FileAccessExtStub::CmdRename; stubFuncMap_[CMD_LIST_FILE] = &FileAccessExtStub::CmdListFile; stubFuncMap_[CMD_GET_ROOTS] = &FileAccessExtStub::CmdGetRoots; - stubFuncMap_[CMD_IS_FILE_EXIST] = &FileAccessExtStub::CmdIsFileExist; + stubFuncMap_[CMD_ACCESS] = &FileAccessExtStub::CmdAccess; stubFuncMap_[CMD_REGISTER_NOTIFY] = &FileAccessExtStub::CmdRegisterNotify; stubFuncMap_[CMD_UNREGISTER_NOTIFY] = &FileAccessExtStub::CmdUnregisterNotify; } @@ -367,7 +367,7 @@ ErrCode FileAccessExtStub::CmdListFile(MessageParcel &data, MessageParcel &reply ErrCode FileAccessExtStub::CmdGetRoots(MessageParcel &data, MessageParcel &reply) { StartTrace(HITRACE_TAG_FILEMANAGEMENT, "CmdGetRoots"); - std::vector vec = GetRoots(); + std::vector vec = GetRoots(); uint64_t count {vec.size()}; if (!reply.WriteUint64(count)) { HILOG_ERROR("parameter GetRoots fail to WriteInt32 count"); @@ -387,32 +387,32 @@ ErrCode FileAccessExtStub::CmdGetRoots(MessageParcel &data, MessageParcel &reply return ERR_OK; } -ErrCode FileAccessExtStub::CmdIsFileExist(MessageParcel &data, MessageParcel &reply) +ErrCode FileAccessExtStub::CmdAccess(MessageParcel &data, MessageParcel &reply) { - StartTrace(HITRACE_TAG_FILEMANAGEMENT, "CmdIsFileExist"); + StartTrace(HITRACE_TAG_FILEMANAGEMENT, "CmdAccess"); std::shared_ptr uri(data.ReadParcelable()); if (uri == nullptr) { - HILOG_ERROR("IsFIleExist uri is nullptr"); + HILOG_ERROR("Access uri is nullptr"); FinishTrace(HITRACE_TAG_FILEMANAGEMENT); return ERR_INVALID_URI; } bool isExist = data.ReadBool(); - int ret = IsFileExist(*uri, isExist); + int ret = Access(*uri, isExist); if (ret < 0) { - HILOG_ERROR("parameter IsFileExist fail, ret is %{pubilc}d", ret); + HILOG_ERROR("parameter Access fail, ret is %{pubilc}d", ret); FinishTrace(HITRACE_TAG_FILEMANAGEMENT); return ret; } if (!reply.WriteInt32(ret)) { - HILOG_ERROR("parameter IsFileExist fail to WriteInt32 ret"); + HILOG_ERROR("parameter Access fail to WriteInt32 ret"); FinishTrace(HITRACE_TAG_FILEMANAGEMENT); return ERR_IPC_ERROR; } if (!reply.WriteBool(isExist)) { - HILOG_ERROR("parameter IsFileExist fail to WriteBool type"); + HILOG_ERROR("parameter Access fail to WriteBool type"); FinishTrace(HITRACE_TAG_FILEMANAGEMENT); return ERR_IPC_ERROR; } diff --git a/frameworks/innerkits/file_access/src/file_access_ext_stub_impl.cpp b/frameworks/innerkits/file_access/src/file_access_ext_stub_impl.cpp index 473747d38d0fb97823178257c63f15ce5e9c34b9..927301cd0c7e1c7cd5118889b178ff3e2cb82e59 100644 --- a/frameworks/innerkits/file_access/src/file_access_ext_stub_impl.cpp +++ b/frameworks/innerkits/file_access/src/file_access_ext_stub_impl.cpp @@ -125,10 +125,10 @@ std::vector FileAccessExtStubImpl::ListFile(const Uri &sourceFile) return vec; } -std::vector FileAccessExtStubImpl::GetRoots() +std::vector FileAccessExtStubImpl::GetRoots() { StartTrace(HITRACE_TAG_FILEMANAGEMENT, "GetRoots"); - std::vector vec; + std::vector vec; if (extension_ == nullptr) { HILOG_ERROR("GetRoots get extension failed."); FinishTrace(HITRACE_TAG_FILEMANAGEMENT); @@ -140,16 +140,16 @@ std::vector FileAccessExtStubImpl::GetRoots() return vec; } -int FileAccessExtStubImpl::IsFileExist(const Uri &uri, bool &isExist) +int FileAccessExtStubImpl::Access(const Uri &uri, bool &isExist) { - StartTrace(HITRACE_TAG_FILEMANAGEMENT, "IsFileExist"); + StartTrace(HITRACE_TAG_FILEMANAGEMENT, "Access"); if (extension_ == nullptr) { - HILOG_ERROR("IsFileExist get extension failed."); + HILOG_ERROR("Access get extension failed."); FinishTrace(HITRACE_TAG_FILEMANAGEMENT); return ERR_IPC_ERROR; } - int ret = extension_->IsFileExist(uri, isExist); + int ret = extension_->Access(uri, isExist); FinishTrace(HITRACE_TAG_FILEMANAGEMENT); return ret; } diff --git a/frameworks/innerkits/file_access/src/file_access_helper.cpp b/frameworks/innerkits/file_access/src/file_access_helper.cpp index a85b68bc07dd4fef417512434d313fd6bdce6699..d3a0bb4dd55c68bb4447b2f3fac14133333d6afa 100644 --- a/frameworks/innerkits/file_access/src/file_access_helper.cpp +++ b/frameworks/innerkits/file_access/src/file_access_helper.cpp @@ -26,9 +26,45 @@ namespace OHOS { namespace FileAccessFwk { -const int32_t DEFAULT_USERID = 100; +namespace { + static const int32_t DEFAULT_USERID = 100; + static const std::string SCHEME_NAME = "datashare"; + static const std::string MEDIA_BNUDLE_NAME_ALIAS = "media"; + static const std::string MEDIA_BNUDLE_NAME = "com.ohos.medialibrary.medialibrarydata"; +} std::unordered_map FileAccessHelper::wantsMap_; +static bool GetBundleNameFromPath(const std::string &path, std::string &bundleName) +{ + if (path.size() == 0) { + HILOG_ERROR("Uri path error."); + return false; + } + + if (path.front() != '/') { + HILOG_ERROR("Uri path format error."); + return false; + } + + auto tmpPath = path.substr(1); + auto index = tmpPath.find_first_of("/"); + bundleName = tmpPath.substr(0, index); + if (bundleName.compare(MEDIA_BNUDLE_NAME_ALIAS) == 0) { + bundleName = MEDIA_BNUDLE_NAME; + } + return true; +} + +static bool CheckUri(Uri &uri) +{ + std::string schemeStr = std::string(uri.GetScheme()); + if (schemeStr.compare(SCHEME_NAME) != 0) { + HILOG_ERROR("Uri scheme error."); + return false; + } + return true; +} + sptr FileAccessHelper::GetBundleMgrProxy() { sptr systemAbilityManager = @@ -79,26 +115,13 @@ void FileAccessHelper::OnSchedulerDied(const wptr &remote) object = nullptr; } -std::shared_ptr FileAccessHelper::GetConnectInfo(const std::string &key) +std::shared_ptr FileAccessHelper::GetConnectInfo(const std::string &bundleName) { - auto iterator = cMap_.find(key); + auto iterator = cMap_.find(bundleName); if (iterator != cMap_.end()) { return iterator->second; } - HILOG_ERROR("GetConnectInfo called with key return nullptr"); - return nullptr; -} - -std::shared_ptr FileAccessHelper::GetConnectInfo(Uri &uri) -{ - for (auto iter = cMap_.begin(); iter != cMap_.end(); ++iter) { - Uri key(iter->first); - if (key.GetScheme().compare(uri.GetScheme()) == 0) { - return iter->second; - } - } - - HILOG_ERROR("GetConnectInfo called with uri return nullptr"); + HILOG_ERROR("GetConnectInfo called with bundleName return nullptr"); return nullptr; } @@ -127,7 +150,7 @@ std::string FileAccessHelper::GetKeyOfWantsMap(const AAFwk::Want &want) } } HILOG_ERROR("GetKeyOfWantsMap called return nullptr"); - return nullptr; + return ""; } void FileAccessHelper::InsertConnectInfo(const std::string &key, @@ -135,8 +158,7 @@ void FileAccessHelper::InsertConnectInfo(const std::string &key, const sptr &fileAccessExtProxy, sptr fileAccessExtConnection) { - Uri uri(key); - std::shared_ptr connectInfo = GetConnectInfo(uri); + std::shared_ptr connectInfo = GetConnectInfo(key); if (connectInfo == nullptr) { std::shared_ptr connectInfo = std::make_shared(); if (connectInfo == nullptr) { @@ -195,11 +217,11 @@ std::shared_ptr FileAccessHelper::Creator( HILOG_ERROR("Creator, connectInfo == nullptr"); return nullptr; } - FileAccessHelper::wantsMap_.insert(std::pair(extensionInfos[i].uri, wantTem)); + FileAccessHelper::wantsMap_.insert(std::pair(extensionInfos[i].bundleName, wantTem)); connectInfo->want = wantTem; connectInfo->fileAccessExtConnection = fileAccessExtConnection; - cMap.insert(std::pair>(extensionInfos[i].uri, connectInfo)); + cMap.emplace(extensionInfos[i].bundleName, connectInfo); } FileAccessHelper *ptrFileAccessHelper = new (std::nothrow) FileAccessHelper(context, cMap); if (ptrFileAccessHelper == nullptr) { @@ -249,8 +271,8 @@ std::shared_ptr FileAccessHelper::Creator( connectInfo->want = wants[i]; connectInfo->fileAccessExtConnection = fileAccessExtConnection; - string uriTmp = FileAccessHelper::GetKeyOfWantsMap(wants[i]); - cMap.insert(std::pair>(uriTmp, connectInfo)); + string bundleName = FileAccessHelper::GetKeyOfWantsMap(wants[i]); + cMap.insert(std::pair>(bundleName, connectInfo)); } FileAccessHelper *ptrFileAccessHelper = new (std::nothrow) FileAccessHelper(context, cMap); if (ptrFileAccessHelper == nullptr) { @@ -300,8 +322,8 @@ std::shared_ptr FileAccessHelper::Creator(const sptrwant = wants[i]; connectInfo->fileAccessExtConnection = fileAccessExtConnection; - string uriTmp = FileAccessHelper::GetKeyOfWantsMap(wants[i]); - cMap.insert(std::pair>(uriTmp, connectInfo)); + string bundleName = FileAccessHelper::GetKeyOfWantsMap(wants[i]); + cMap.insert(std::pair>(bundleName, connectInfo)); } FileAccessHelper *ptrFileAccessHelper = new (std::nothrow) FileAccessHelper(token, cMap); if (ptrFileAccessHelper == nullptr) { @@ -327,7 +349,13 @@ bool FileAccessHelper::Release() sptr FileAccessHelper::GetProxyByUri(Uri &uri) { - auto connectInfo = GetConnectInfo(uri); + std::string bundleName; + if (!GetBundleNameFromPath(uri.GetPath(), bundleName)) { + HILOG_ERROR("Get BundleName failed."); + return nullptr; + } + + auto connectInfo = GetConnectInfo(bundleName); if (connectInfo == nullptr) { HILOG_ERROR("GetProxyByUri failed with invalid connectInfo"); return nullptr; @@ -354,7 +382,6 @@ bool FileAccessHelper::GetProxy() { for (auto iter = cMap_.begin(); iter != cMap_.end(); ++iter) { auto connectInfo = iter->second; - std::vector results; if (!connectInfo->fileAccessExtConnection->IsExtAbilityConnected()) { connectInfo->fileAccessExtConnection->ConnectFileExtAbility(connectInfo->want, token_); } @@ -375,6 +402,12 @@ bool FileAccessHelper::GetProxy() int FileAccessHelper::OpenFile(Uri &uri, int flags) { StartTrace(HITRACE_TAG_FILEMANAGEMENT, "OpenFile"); + if (!CheckUri(uri)) { + HILOG_ERROR("Uri format check error."); + FinishTrace(HITRACE_TAG_FILEMANAGEMENT); + return ERR_INVALID_URI; + } + sptr fileExtProxy = GetProxyByUri(uri); if (fileExtProxy == nullptr) { HILOG_ERROR("failed with invalid fileAccessExtProxy"); @@ -390,6 +423,12 @@ int FileAccessHelper::OpenFile(Uri &uri, int flags) int FileAccessHelper::CreateFile(Uri &parent, const std::string &displayName, Uri &newFile) { StartTrace(HITRACE_TAG_FILEMANAGEMENT, "CreateFile"); + if (!CheckUri(parent)) { + HILOG_ERROR("Uri format check error."); + FinishTrace(HITRACE_TAG_FILEMANAGEMENT); + return ERR_INVALID_URI; + } + sptr fileExtProxy = GetProxyByUri(parent); if (fileExtProxy == nullptr) { HILOG_ERROR("failed with invalid fileAccessExtProxy"); @@ -405,6 +444,12 @@ int FileAccessHelper::CreateFile(Uri &parent, const std::string &displayName, Ur int FileAccessHelper::Mkdir(Uri &parent, const std::string &displayName, Uri &newDir) { StartTrace(HITRACE_TAG_FILEMANAGEMENT, "Mkdir"); + if (!CheckUri(parent)) { + HILOG_ERROR("Uri format check error."); + FinishTrace(HITRACE_TAG_FILEMANAGEMENT); + return ERR_INVALID_URI; + } + sptr fileExtProxy = GetProxyByUri(parent); if (fileExtProxy == nullptr) { HILOG_ERROR("failed with invalid fileAccessExtProxy"); @@ -420,6 +465,12 @@ int FileAccessHelper::Mkdir(Uri &parent, const std::string &displayName, Uri &ne int FileAccessHelper::Delete(Uri &selectFile) { StartTrace(HITRACE_TAG_FILEMANAGEMENT, "Delete"); + if (!CheckUri(selectFile)) { + HILOG_ERROR("Uri format check error."); + FinishTrace(HITRACE_TAG_FILEMANAGEMENT); + return ERR_INVALID_URI; + } + sptr fileExtProxy = GetProxyByUri(selectFile); if (fileExtProxy == nullptr) { HILOG_ERROR("failed with invalid fileAccessExtProxy"); @@ -437,9 +488,21 @@ int FileAccessHelper::Move(Uri &sourceFile, Uri &targetParent, Uri &newFile) StartTrace(HITRACE_TAG_FILEMANAGEMENT, "Move"); Uri sourceFileUri(sourceFile.ToString()); Uri targetParentUri(targetParent.ToString()); + if (!CheckUri(sourceFile)) { + HILOG_ERROR("sourceFile format check error."); + FinishTrace(HITRACE_TAG_FILEMANAGEMENT); + return ERR_INVALID_URI; + } + + if (!CheckUri(targetParent)) { + HILOG_ERROR("targetParent format check error."); + FinishTrace(HITRACE_TAG_FILEMANAGEMENT); + return ERR_INVALID_URI; + } + if (sourceFileUri.GetScheme() != targetParentUri.GetScheme()) { HILOG_WARN("Operation failed, move not supported"); - return ERR_OPERATION_NOT_PERMITTED; + return ERR_OPERATION_NOT_SUPPORT; } sptr fileExtProxy = GetProxyByUri(sourceFile); @@ -457,6 +520,12 @@ int FileAccessHelper::Move(Uri &sourceFile, Uri &targetParent, Uri &newFile) int FileAccessHelper::Rename(Uri &sourceFile, const std::string &displayName, Uri &newFile) { StartTrace(HITRACE_TAG_FILEMANAGEMENT, "Rename"); + if (!CheckUri(sourceFile)) { + HILOG_ERROR("sourceFile format check error."); + FinishTrace(HITRACE_TAG_FILEMANAGEMENT); + return ERR_INVALID_URI; + } + sptr fileExtProxy = GetProxyByUri(sourceFile); if (fileExtProxy == nullptr) { HILOG_ERROR("failed with invalid fileAccessExtProxy"); @@ -473,6 +542,12 @@ std::vector FileAccessHelper::ListFile(Uri &sourceFile) { StartTrace(HITRACE_TAG_FILEMANAGEMENT, "ListFile"); std::vector results; + if (!CheckUri(sourceFile)) { + HILOG_ERROR("sourceFile format check error."); + FinishTrace(HITRACE_TAG_FILEMANAGEMENT); + return results; + } + sptr fileExtProxy = GetProxyByUri(sourceFile); if (fileExtProxy == nullptr) { HILOG_ERROR("failed with invalid fileAccessExtProxy"); @@ -485,10 +560,10 @@ std::vector FileAccessHelper::ListFile(Uri &sourceFile) return results; } -std::vector FileAccessHelper::GetRoots() +std::vector FileAccessHelper::GetRoots() { StartTrace(HITRACE_TAG_FILEMANAGEMENT, "GetRoots"); - std::vector rootsInfo; + std::vector rootsInfo; if (!GetProxy()) { HILOG_ERROR("failed with invalid fileAccessExtProxy"); FinishTrace(HITRACE_TAG_FILEMANAGEMENT); @@ -498,7 +573,7 @@ std::vector FileAccessHelper::GetRoots() for (auto iter = cMap_.begin(); iter != cMap_.end(); ++iter) { auto connectInfo = iter->second; auto fileAccessExtProxy = connectInfo->fileAccessExtConnection->GetFileExtProxy(); - std::vector results; + std::vector results; if (fileAccessExtProxy) { AddFileAccessDeathRecipient(fileAccessExtProxy->AsObject()); } @@ -525,16 +600,22 @@ std::vector FileAccessHelper::GetRegisterFileAccessExtAbilityInfo() for (size_t i = 0; i < extensionInfos.size(); i++) { AAFwk::Want want; want.SetElementName(extensionInfos[i].bundleName, extensionInfos[i].name); - FileAccessHelper::wantsMap_.insert(std::pair(extensionInfos[i].uri, want)); + FileAccessHelper::wantsMap_.insert(std::pair(extensionInfos[i].bundleName, want)); wants.push_back(want); } return wants; } -int FileAccessHelper::IsFileExist(Uri &uri, bool &isExist) +int FileAccessHelper::Access(Uri &uri, bool &isExist) { - StartTrace(HITRACE_TAG_FILEMANAGEMENT, "IsFileExist"); + StartTrace(HITRACE_TAG_FILEMANAGEMENT, "Access"); + if (!CheckUri(uri)) { + HILOG_ERROR("uri format check error."); + FinishTrace(HITRACE_TAG_FILEMANAGEMENT); + return ERR_INVALID_URI; + } + sptr fileExtProxy = GetProxyByUri(uri); if (fileExtProxy == nullptr) { HILOG_ERROR("failed with invalid fileAccessExtProxy"); @@ -542,7 +623,7 @@ int FileAccessHelper::IsFileExist(Uri &uri, bool &isExist) return ERR_IPC_ERROR; } - int index = fileExtProxy->IsFileExist(uri, isExist); + int index = fileExtProxy->Access(uri, isExist); FinishTrace(HITRACE_TAG_FILEMANAGEMENT); return index; } @@ -550,68 +631,81 @@ int FileAccessHelper::IsFileExist(Uri &uri, bool &isExist) int FileAccessHelper::On(std::shared_ptr &callback) { StartTrace(HITRACE_TAG_FILEMANAGEMENT, "On"); - Uri uri("fileAccess://"); - sptr fileExtProxy = GetProxyByUri(uri); - if (fileExtProxy == nullptr) { - HILOG_ERROR("failed with invalid fileExtProxy"); - FinishTrace(HITRACE_TAG_FILEMANAGEMENT); - return ERR_IPC_ERROR; - } - if (callback == nullptr) { HILOG_ERROR("failed with invalid callback"); FinishTrace(HITRACE_TAG_FILEMANAGEMENT); return ERR_INVALID_PARAM; } - if (notifyAgent_ != nullptr) { - HILOG_INFO("notifyAgent registered yet."); - int ret = fileExtProxy->UnregisterNotify(notifyAgent_); - if (ret != ERR_OK) { - HILOG_INFO("fileExtProxy unregisterNotify fail"); - } - notifyAgent_.clear(); + if (!GetProxy()) { + HILOG_ERROR("failed with invalid fileAccessExtProxy"); + FinishTrace(HITRACE_TAG_FILEMANAGEMENT); + return ERR_IPC_ERROR; } - notifyAgent_ = new(std::nothrow) FileAccessNotifyAgent(callback); + std::lock_guard lock(notifyAgentMutex_); if (notifyAgent_ == nullptr) { - HILOG_INFO("new FileAccessNotifyAgent fail"); - FinishTrace(HITRACE_TAG_FILEMANAGEMENT); - return ERR_INVALID_PARAM; + notifyAgent_ = new(std::nothrow) FileAccessNotifyAgent(callback); + if (notifyAgent_ == nullptr) { + HILOG_ERROR("new FileAccessNotifyAgent fail"); + FinishTrace(HITRACE_TAG_FILEMANAGEMENT); + return ERR_INVALID_PARAM; + } } - auto ret = fileExtProxy->RegisterNotify(notifyAgent_); - if (ret != ERR_OK) { - HILOG_ERROR("fileExtProxy RegisterNotify fail"); + int errorCode = ERR_OK; + for (auto iter = cMap_.begin(); iter != cMap_.end(); ++iter) { + auto connectInfo = iter->second; + auto fileAccessExtProxy = connectInfo->fileAccessExtConnection->GetFileExtProxy(); + if (fileAccessExtProxy == nullptr) { + HILOG_ERROR("fileAccessExtProxy RegisterNotify fail"); + FinishTrace(HITRACE_TAG_FILEMANAGEMENT); + return ERR_IPC_ERROR; + } + + errorCode = fileAccessExtProxy->RegisterNotify(notifyAgent_); + if (errorCode != ERR_OK) { + HILOG_ERROR("fileAccessExtProxy RegisterNotify fail, bundleName:%{public}s, ret:%{public}d.", + connectInfo->want.GetElement().GetBundleName().c_str(), errorCode); + return errorCode; + } } + FinishTrace(HITRACE_TAG_FILEMANAGEMENT); - return ret; + return errorCode; } int FileAccessHelper::Off() { StartTrace(HITRACE_TAG_FILEMANAGEMENT, "Off"); + std::lock_guard lock(notifyAgentMutex_); if (notifyAgent_ == nullptr) { HILOG_ERROR("not registered notify"); FinishTrace(HITRACE_TAG_FILEMANAGEMENT); return ERR_NOTIFY_NOT_EXIST; } - Uri uri("fileAccess://"); - sptr fileExtProxy = GetProxyByUri(uri); - if (fileExtProxy == nullptr) { - HILOG_ERROR("failed with invalid fileExtProxy"); - FinishTrace(HITRACE_TAG_FILEMANAGEMENT); - return ERR_IPC_ERROR; - } + int errorCode = ERR_OK; + for (auto [key, value] : cMap_) { + auto connectInfo = value; + auto fileAccessExtProxy = connectInfo->fileAccessExtConnection->GetFileExtProxy(); + if (fileAccessExtProxy == nullptr) { + HILOG_INFO("fileAccessExtProxy UnregisterNotify fail, bundleName:%{public}s", + connectInfo->want.GetElement().GetBundleName().c_str()); + continue; + } - auto ret = fileExtProxy->UnregisterNotify(notifyAgent_); - if (ret != ERR_OK) { - HILOG_ERROR("fileExtProxy unregisterNotify fail"); + errorCode = fileAccessExtProxy->UnregisterNotify(notifyAgent_); + if (errorCode != ERR_OK) { + HILOG_ERROR("fileAccessExtProxy UnregisterNotify fail, bundleName:%{public}s, ret:%{public}d.", + connectInfo->want.GetElement().GetBundleName().c_str(), errorCode); + return errorCode; + } } + notifyAgent_.clear(); FinishTrace(HITRACE_TAG_FILEMANAGEMENT); - return ret; + return errorCode; } void FileAccessDeathRecipient::OnRemoteDied(const wptr &remote) diff --git a/frameworks/innerkits/file_access/src/js_file_access_ext_ability.cpp b/frameworks/innerkits/file_access/src/js_file_access_ext_ability.cpp index a6e31e74b47789998d60a0d457b663a5d19fb464..e7f29d0a60692ed027f614f98fe56e08504d1c8e 100644 --- a/frameworks/innerkits/file_access/src/js_file_access_ext_ability.cpp +++ b/frameworks/innerkits/file_access/src/js_file_access_ext_ability.cpp @@ -72,7 +72,7 @@ void JsFileAccessExtAbility::Init(const std::shared_ptr &rec moduleName.append("::").append(abilityInfo_->name); HandleScope handleScope(jsRuntime_); - jsObj_ = jsRuntime_.LoadModule(moduleName, srcPath); + jsObj_ = jsRuntime_.LoadModule(moduleName, srcPath, abilityInfo_->hapPath); if (jsObj_ == nullptr) { HILOG_ERROR("Failed to get jsObj_"); FinishTrace(HITRACE_TAG_FILEMANAGEMENT); @@ -104,9 +104,9 @@ NativeValue* JsFileAccessExtAbility::FuncCallback(NativeEngine* engine, NativeCa return engine->CreateUndefined(); } - DeviceType deviceType = (DeviceType)UnwrapUint32FromJS(reinterpret_cast(engine), + int32_t deviceType = UnwrapInt32FromJS(reinterpret_cast(engine), reinterpret_cast(info->argv[ARGC_ZERO])); - NotifyType notifyType = (NotifyType)UnwrapUint32FromJS(reinterpret_cast(engine), + int32_t notifyType = UnwrapInt32FromJS(reinterpret_cast(engine), reinterpret_cast(info->argv[ARGC_ONE])); std::string uri = UnwrapStringFromJS(reinterpret_cast(engine), reinterpret_cast(info->argv[ARGC_TWO])); @@ -361,6 +361,11 @@ int JsFileAccessExtAbility::OpenFile(const Uri &uri, int flags) }; auto retParser = [value](NativeEngine &engine, NativeValue *result) -> bool { NativeObject *obj = ConvertNativeValueTo(result); + if (obj == nullptr) { + HILOG_ERROR("Convert js object fail."); + return false; + } + bool ret = ConvertFromJsValue(engine, obj->GetProperty("fd"), value->data); ret = ret && ConvertFromJsValue(engine, obj->GetProperty("code"), value->code); if (!ret) { @@ -407,6 +412,11 @@ int JsFileAccessExtAbility::CreateFile(const Uri &parent, const std::string &dis }; auto retParser = [value](NativeEngine &engine, NativeValue *result) -> bool { NativeObject *obj = ConvertNativeValueTo(result); + if (obj == nullptr) { + HILOG_ERROR("Convert js object fail."); + return false; + } + bool ret = ConvertFromJsValue(engine, obj->GetProperty("uri"), value->data); ret = ret && ConvertFromJsValue(engine, obj->GetProperty("code"), value->code); if (!ret) { @@ -460,6 +470,11 @@ int JsFileAccessExtAbility::Mkdir(const Uri &parent, const std::string &displayN }; auto retParser = [value](NativeEngine &engine, NativeValue *result) -> bool { NativeObject *obj = ConvertNativeValueTo(result); + if (obj == nullptr) { + HILOG_ERROR("Convert js object fail."); + return false; + } + bool ret = ConvertFromJsValue(engine, obj->GetProperty("uri"), value->data); ret = ret && ConvertFromJsValue(engine, obj->GetProperty("code"), value->code); if (!ret) { @@ -539,8 +554,7 @@ int JsFileAccessExtAbility::Move(const Uri &sourceFile, const Uri &targetParent, HILOG_ERROR("create sourceFile uri native js value fail."); return false; } - NativeValue *dstUri = engine.CreateString(targetParent.ToString().c_str(), - targetParent.ToString().length()); + NativeValue *dstUri = engine.CreateString(targetParent.ToString().c_str(), targetParent.ToString().length()); if (dstUri == nullptr) { HILOG_ERROR("create targetParent uri native js value fail."); return false; @@ -552,6 +566,11 @@ int JsFileAccessExtAbility::Move(const Uri &sourceFile, const Uri &targetParent, }; auto retParser = [value](NativeEngine &engine, NativeValue *result) -> bool { NativeObject *obj = ConvertNativeValueTo(result); + if (obj == nullptr) { + HILOG_ERROR("Convert js object fail."); + return false; + } + bool ret = ConvertFromJsValue(engine, obj->GetProperty("uri"), value->data); ret = ret && ConvertFromJsValue(engine, obj->GetProperty("code"), value->code); if (!ret) { @@ -605,6 +624,11 @@ int JsFileAccessExtAbility::Rename(const Uri &sourceFile, const std::string &dis }; auto retParser = [value](NativeEngine &engine, NativeValue *result) -> bool { NativeObject *obj = ConvertNativeValueTo(result); + if (obj == nullptr) { + HILOG_ERROR("Convert js object fail."); + return false; + } + bool ret = ConvertFromJsValue(engine, obj->GetProperty("uri"), value->data); ret = ret && ConvertFromJsValue(engine, obj->GetProperty("code"), value->code); if (!ret) { @@ -635,6 +659,51 @@ int JsFileAccessExtAbility::Rename(const Uri &sourceFile, const std::string &dis return errCode; } +static bool ParserListFileJsResult(NativeEngine &engine, NativeValue *nativeValue, + std::shared_ptr>> &result) +{ + if (result == nullptr) { + HILOG_ERROR("result is nullptr."); + return false; + } + + NativeObject *obj = ConvertNativeValueTo(nativeValue); + if (obj == nullptr) { + HILOG_ERROR("Convert js object fail."); + return false; + } + + bool ret = ConvertFromJsValue(engine, obj->GetProperty("code"), result->code); + NativeArray *nativeArray = ConvertNativeValueTo(obj->GetProperty("infos")); + for (uint32_t i = 0; i < nativeArray->GetLength(); i++) { + NativeValue *nativeFileInfo = nativeArray->GetElement(i); + if (nativeFileInfo == nullptr) { + HILOG_ERROR("get native FileInfo fail."); + return false; + } + + obj = ConvertNativeValueTo(nativeFileInfo); + if (obj == nullptr) { + HILOG_ERROR("Convert js object fail."); + return false; + } + + FileInfo fileInfo; + ret = ret && ConvertFromJsValue(engine, obj->GetProperty("uri"), fileInfo.uri); + ret = ret && ConvertFromJsValue(engine, obj->GetProperty("fileName"), fileInfo.fileName); + ret = ret && ConvertFromJsValue(engine, obj->GetProperty("mode"), fileInfo.mode); + ret = ret && ConvertFromJsValue(engine, obj->GetProperty("size"), fileInfo.size); + ret = ret && ConvertFromJsValue(engine, obj->GetProperty("mtime"), fileInfo.mtime); + ret = ret && ConvertFromJsValue(engine, obj->GetProperty("mimeType"), fileInfo.mimeType); + if (!ret) { + HILOG_ERROR("Convert js value fail."); + return ret; + } + (result->data).emplace_back(std::move(fileInfo)); + } + return true; +} + std::vector JsFileAccessExtAbility::ListFile(const Uri &sourceFile) { StartTrace(HITRACE_TAG_FILEMANAGEMENT, "ListFile"); @@ -645,32 +714,26 @@ std::vector JsFileAccessExtAbility::ListFile(const Uri &sourceFile) HILOG_ERROR("create sourceFile uri native js value fail."); return false; } + argv[ARGC_ZERO] = uri; argc = ARGC_ONE; return true; }; auto retParser = [value](NativeEngine &engine, NativeValue *result) -> bool { - NativeObject *obj = ConvertNativeValueTo(result); - bool ret = ConvertFromJsValue(engine, obj->GetProperty("code"), value->code); - NativeArray *nativeArray = ConvertNativeValueTo(obj->GetProperty("infos")); - for (uint32_t i = 0; i < nativeArray->GetLength(); i++) { - NativeValue *nativeFileInfo = nativeArray->GetElement(i); - obj = ConvertNativeValueTo(nativeFileInfo); - FileInfo fileInfo; - std::string uri; - ret = ret && ConvertFromJsValue(engine, obj->GetProperty("uri"), uri); - fileInfo.uri = Uri(uri); - ret = ret && ConvertFromJsValue(engine, obj->GetProperty("fileName"), fileInfo.fileName); - ret = ret && ConvertFromJsValue(engine, obj->GetProperty("mode"), fileInfo.mode); - ret = ret && ConvertFromJsValue(engine, obj->GetProperty("size"), fileInfo.size); - ret = ret && ConvertFromJsValue(engine, obj->GetProperty("mtime"), fileInfo.mtime); - ret = ret && ConvertFromJsValue(engine, obj->GetProperty("mimeType"), fileInfo.mimeType); - if (!ret) { - HILOG_ERROR("Convert js value fail."); - return ret; - } - (value->data).emplace_back(std::move(fileInfo)); + std::shared_ptr>> fileInfo = std::make_shared>>(); + if (fileInfo == nullptr) { + HILOG_ERROR("new Value fail."); + return false; } + + bool ret = ParserListFileJsResult(engine, result, fileInfo); + if (!ret) { + HILOG_ERROR("Parser js value fail."); + return ret; + } + + value->code = fileInfo->code; + value->data = std::move(fileInfo->data); return true; }; @@ -687,34 +750,46 @@ std::vector JsFileAccessExtAbility::ListFile(const Uri &sourceFile) return value->data; } -std::vector JsFileAccessExtAbility::GetRoots() +std::vector JsFileAccessExtAbility::GetRoots() { StartTrace(HITRACE_TAG_FILEMANAGEMENT, "GetRoots"); - auto value = std::make_shared>>(); + auto value = std::make_shared>>(); auto argParser = [](NativeEngine &engine, NativeValue *argv[], size_t &argc) -> bool { argc = ARGC_ZERO; return true; }; auto retParser = [value](NativeEngine &engine, NativeValue *result) -> bool { NativeObject *obj = ConvertNativeValueTo(result); + if (obj == nullptr) { + HILOG_ERROR("Convert js object fail."); + return false; + } + bool ret = ConvertFromJsValue(engine, obj->GetProperty("code"), value->code); NativeArray *nativeArray = ConvertNativeValueTo(obj->GetProperty("roots")); for (uint32_t i = 0; i < nativeArray->GetLength(); i++) { - NativeValue *nativeDeviceInfo = nativeArray->GetElement(i); - obj = ConvertNativeValueTo(nativeDeviceInfo); - DeviceInfo deviceInfo; - std::string uri; - ret = ret && ConvertFromJsValue(engine, obj->GetProperty("uri"), uri); - deviceInfo.uri = Uri(uri); - ret = ret && ConvertFromJsValue(engine, obj->GetProperty("displayName"), deviceInfo.displayName); - ret = ret && ConvertFromJsValue(engine, obj->GetProperty("deviceId"), deviceInfo.deviceId); - ret = ret && ConvertFromJsValue(engine, obj->GetProperty("flags"), deviceInfo.flags); - ret = ret && ConvertFromJsValue(engine, obj->GetProperty("type"), deviceInfo.type); + NativeValue *nativeRootInfo = nativeArray->GetElement(i); + if (nativeRootInfo == nullptr) { + HILOG_ERROR("get native FileInfo fail."); + return false; + } + + obj = ConvertNativeValueTo(nativeRootInfo); + if (obj == nullptr) { + HILOG_ERROR("Convert js object fail."); + return false; + } + + RootInfo rootInfo; + ret = ret && ConvertFromJsValue(engine, obj->GetProperty("deviceType"), rootInfo.deviceType); + ret = ret && ConvertFromJsValue(engine, obj->GetProperty("uri"), rootInfo.uri); + ret = ret && ConvertFromJsValue(engine, obj->GetProperty("displayName"), rootInfo.displayName); + ret = ret && ConvertFromJsValue(engine, obj->GetProperty("deviceFlags"), rootInfo.deviceFlags); if (!ret) { HILOG_ERROR("Convert js value fail."); return ret; } - (value->data).emplace_back(std::move(deviceInfo)); + (value->data).emplace_back(std::move(rootInfo)); } return true; }; @@ -732,9 +807,9 @@ std::vector JsFileAccessExtAbility::GetRoots() return value->data; } -int JsFileAccessExtAbility::IsFileExist(const Uri &uri, bool &isExist) +int JsFileAccessExtAbility::Access(const Uri &uri, bool &isExist) { - StartTrace(HITRACE_TAG_FILEMANAGEMENT, "IsFileExist"); + StartTrace(HITRACE_TAG_FILEMANAGEMENT, "Access"); auto value = std::make_shared>(); auto argParser = [uri](NativeEngine &engine, NativeValue *argv[], size_t &argc) -> bool { NativeValue *nativeUri = engine.CreateString(uri.ToString().c_str(), uri.ToString().length()); @@ -744,6 +819,11 @@ int JsFileAccessExtAbility::IsFileExist(const Uri &uri, bool &isExist) }; auto retParser = [value](NativeEngine &engine, NativeValue *result) -> bool { NativeObject *obj = ConvertNativeValueTo(result); + if (obj == nullptr) { + HILOG_ERROR("Convert js object fail."); + return ERR_PARSER_FAIL; + } + bool ret = ConvertFromJsValue(engine, obj->GetProperty("isExist"), value->data); ret = ret && ConvertFromJsValue(engine, obj->GetProperty("code"), value->code); if (!ret) { @@ -752,7 +832,7 @@ int JsFileAccessExtAbility::IsFileExist(const Uri &uri, bool &isExist) return ret; }; - auto errCode = CallJsMethod("isFileExist", jsRuntime_, jsObj_.get(), argParser, retParser); + auto errCode = CallJsMethod("access", jsRuntime_, jsObj_.get(), argParser, retParser); if (errCode != ERR_OK) { HILOG_ERROR("CallJsMethod error, code:%{public}d.", errCode); FinishTrace(HITRACE_TAG_FILEMANAGEMENT); diff --git a/frameworks/innerkits/file_access/src/napi_common_fileaccess.cpp b/frameworks/innerkits/file_access/src/napi_common_fileaccess.cpp index b34865aa73a9d6142bbcce44e927711916ad12bd..b4f3064e3e048a6d83b86d1a47bbd96354c754bf 100644 --- a/frameworks/innerkits/file_access/src/napi_common_fileaccess.cpp +++ b/frameworks/innerkits/file_access/src/napi_common_fileaccess.cpp @@ -113,13 +113,13 @@ napi_value WrapFileInfo(napi_env env, const FileInfo &fileInfo) NAPI_CALL(env, napi_create_object(env, &jsObject)); - jsValue = OHOS::AppExecFwk::WrapStringToJS(env, fileInfo.uri.ToString()); + jsValue = OHOS::AppExecFwk::WrapStringToJS(env, fileInfo.uri); SetPropertyValueByPropertyName(env, jsObject, "uri", jsValue); jsValue = OHOS::AppExecFwk::WrapStringToJS(env, fileInfo.fileName); SetPropertyValueByPropertyName(env, jsObject, "fileName", jsValue); - jsValue = OHOS::AppExecFwk::WrapStringToJS(env, fileInfo.mode); + jsValue = OHOS::AppExecFwk::WrapInt32ToJS(env, fileInfo.mode); SetPropertyValueByPropertyName(env, jsObject, "mode", jsValue); jsValue = OHOS::AppExecFwk::WrapInt64ToJS(env, fileInfo.size); @@ -142,15 +142,16 @@ bool UnwrapFileInfo(napi_env env, napi_value param, FileInfo &fileInfo) std::string natValueString(""); if (OHOS::AppExecFwk::UnwrapStringByPropertyName(env, param, "uri", natValueString)) { - fileInfo.uri = Uri(natValueString); + fileInfo.uri = natValueString; } if (OHOS::AppExecFwk::UnwrapStringByPropertyName(env, param, "fileName", natValueString)) { fileInfo.fileName = natValueString; } - if (OHOS::AppExecFwk::UnwrapStringByPropertyName(env, param, "mode", natValueString)) { - fileInfo.mode = natValueString; + int32_t natValueInt32 = ERR_OK; + if (UnwrapInt32ByPropertyName(env, param, "mode", natValueInt32)) { + fileInfo.mode = natValueInt32; } int64_t natValueInt64 = ERR_OK; @@ -210,71 +211,64 @@ bool UnwrapArrayFileInfoFromJS(napi_env env, napi_value param, std::vector &deviceInfoVec) +napi_value WrapArrayRootInfoToJS(napi_env env, const std::vector &rootInfoVec) { napi_value jsArray = nullptr; napi_value jsValue = nullptr; uint32_t index = ERR_OK; NAPI_CALL(env, napi_create_array(env, &jsArray)); - for (uint32_t i = 0; i < deviceInfoVec.size(); i++) { - jsValue = WrapDeviceInfo(env, deviceInfoVec[i]); + for (uint32_t i = 0; i < rootInfoVec.size(); i++) { + jsValue = WrapRootInfo(env, rootInfoVec[i]); if (napi_set_element(env, jsArray, index, jsValue) == napi_ok) { index++; } @@ -282,7 +276,7 @@ napi_value WrapArrayDeviceInfoToJS(napi_env env, const std::vector & return jsArray; } -bool UnwrapArrayDeviceInfoFromJS(napi_env env, napi_value param, std::vector &deviceInfoVec) +bool UnwrapArrayRootInfoFromJS(napi_env env, napi_value param, std::vector &rootInfoVec) { uint32_t arraySize = ERR_OK; napi_value jsValue = nullptr; @@ -291,19 +285,19 @@ bool UnwrapArrayDeviceInfoFromJS(napi_env env, napi_value param, std::vector fah = nullptr; Uri newDirUri(""); @@ -40,7 +40,7 @@ public: cout << "FileAccessHelperTest code test" << endl; auto saManager = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager(); - auto remoteObj = saManager->GetSystemAbility(abilityId); + auto remoteObj = saManager->GetSystemAbility(ABILITY_ID); AAFwk::Want want; want.SetElementName("com.ohos.medialibrary.medialibrarydata", "FileExtensionAbility"); vector wants {want}; @@ -146,16 +146,16 @@ HWTEST_F(FileAccessHelperTest, file_access_helper_OpenFile_0000, testing::ext::T OHOS::Security::AccessToken::AccessTokenID tokenId = tokenIdEx.tokenIdExStruct.tokenID; SetSelfTokenID(tokenId); - vector info = fah->GetRoots(); + vector info = fah->GetRoots(); Uri parentUri(""); if (info.size() > 0) { - parentUri = info[0].uri; + parentUri = Uri(info[0].uri); GTEST_LOG_(INFO) << parentUri.ToString(); } - + int result = fah->Mkdir(parentUri, "Download", newDirUri); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - + Uri newDirUriTest(""); result = fah->Mkdir(newDirUri, "test1", newDirUriTest); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); @@ -168,7 +168,7 @@ HWTEST_F(FileAccessHelperTest, file_access_helper_OpenFile_0000, testing::ext::T EXPECT_GT(result, OHOS::FileAccessFwk::ERR_OK); GTEST_LOG_(INFO) << "OpenFile_0000 result:" << result << endl; - + result = fah->Delete(newDirUriTest); EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); } catch (...) { @@ -608,7 +608,7 @@ HWTEST_F(FileAccessHelperTest, file_access_helper_Delete_0000, testing::ext::Tes result = fah->Delete(newFileUri); EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); GTEST_LOG_(INFO) << "Delete_0000 result:" << result << endl; - + result = fah->Delete(newDirUriTest); EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); } catch (...) { @@ -633,7 +633,7 @@ HWTEST_F(FileAccessHelperTest, file_access_helper_Delete_0001, testing::ext::Tes Uri newDirUriTest(""); int result = fah->Mkdir(newDirUri, "test", newDirUriTest); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - + result = fah->Delete(newDirUriTest); EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); GTEST_LOG_(INFO) << "Delete_0001 result:" << result << endl; @@ -682,11 +682,11 @@ HWTEST_F(FileAccessHelperTest, file_access_helper_Delete_0003, testing::ext::Tes Uri newDirUriTest(""); int result = fah->Mkdir(newDirUri, "test", newDirUriTest); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - + Uri selectFileUri("storage/media/100/local/files/Download/test"); result = fah->Delete(selectFileUri); EXPECT_LT(result, OHOS::FileAccessFwk::ERR_OK); - + result = fah->Delete(newDirUriTest); EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); GTEST_LOG_(INFO) << "Delete_0003 result:" << result << endl; @@ -748,7 +748,7 @@ HWTEST_F(FileAccessHelperTest, file_access_helper_Move_0000, testing::ext::TestS result = fah->Move(testUri, newDirUriTest2, testUri2); EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); GTEST_LOG_(INFO) << "Move_0000 result:" << result << endl; - + result = fah->Delete(newDirUriTest1); EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); @@ -820,7 +820,7 @@ HWTEST_F(FileAccessHelperTest, file_access_helper_Move_0002, testing::ext::TestS result = fah->Move(sourceFileUri, newDirUriTest, testUri); EXPECT_LT(result, OHOS::FileAccessFwk::ERR_OK); GTEST_LOG_(INFO) << "Move_0002 result:" << result << endl; - + result = fah->Delete(newDirUriTest); EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); } catch (...) { @@ -859,7 +859,7 @@ HWTEST_F(FileAccessHelperTest, file_access_helper_Move_0003, testing::ext::TestS result = fah->Move(sourceFileUri, newDirUriTest2, testUri2); EXPECT_LT(result, OHOS::FileAccessFwk::ERR_OK); GTEST_LOG_(INFO) << "Move_0003 result:" << result << endl; - + result = fah->Delete(newDirUriTest1); EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); @@ -893,7 +893,7 @@ HWTEST_F(FileAccessHelperTest, file_access_helper_Move_0004, testing::ext::TestS result = fah->Move(sourceFileUri, newDirUriTest, testUri); EXPECT_LT(result, OHOS::FileAccessFwk::ERR_OK); GTEST_LOG_(INFO) << "Move_0004 result:" << result << endl; - + result = fah->Delete(newDirUriTest); EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); } catch (...) { @@ -928,7 +928,7 @@ HWTEST_F(FileAccessHelperTest, file_access_helper_Move_0005, testing::ext::TestS result = fah->Move(testUri, targetParentUri, testUri2); EXPECT_LT(result, OHOS::FileAccessFwk::ERR_OK); GTEST_LOG_(INFO) << "Move_0005 result:" << result << endl; - + result = fah->Delete(newDirUriTest); EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); } catch (...) { @@ -967,7 +967,7 @@ HWTEST_F(FileAccessHelperTest, file_access_helper_Move_0006, testing::ext::TestS result = fah->Move(testUri, targetParentUri, testUri2); EXPECT_LT(result, OHOS::FileAccessFwk::ERR_OK); GTEST_LOG_(INFO) << "Move_0006 result:" << result << endl; - + result = fah->Delete(newDirUriTest1); EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); @@ -1009,7 +1009,7 @@ HWTEST_F(FileAccessHelperTest, file_access_helper_Move_0007, testing::ext::TestS result = fah->Move(testUri, targetParentUri, testUri2); EXPECT_LT(result, OHOS::FileAccessFwk::ERR_OK); GTEST_LOG_(INFO) << "Move_0007 result:" << result << endl; - + result = fah->Delete(newDirUriTest1); EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); @@ -1249,7 +1249,7 @@ HWTEST_F(FileAccessHelperTest, file_access_helper_Rename_0003, testing::ext::Tes result = fah->Rename(sourceFileUri, "testRename.txt", renameUri); EXPECT_LT(result, OHOS::FileAccessFwk::ERR_OK); GTEST_LOG_(INFO) << "Rename_0003 result:" << result << endl; - + result = fah->Delete(newDirUriTest); EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); } catch (...) { @@ -1443,18 +1443,25 @@ HWTEST_F(FileAccessHelperTest, file_access_helper_GetRoots_0000, testing::ext::T GTEST_LOG_(INFO) << "FileAccessHelperTest-begin file_access_helper_GetRoots_0000"; try { uint64_t selfTokenId_ = GetSelfTokenID(); - - vector info = fah->GetRoots(); + + vector info = fah->GetRoots(); EXPECT_GT(info.size(), 0); + if (info.size() > 0) { + GTEST_LOG_(INFO) << info[0].uri; + GTEST_LOG_(INFO) << info[0].displayName; + GTEST_LOG_(INFO) << info[0].deviceType; + GTEST_LOG_(INFO) << info[0].deviceFlags; + } + string uri = "datashare:///media/root"; string displayName = "LOCAL"; uint32_t flag = 0; - EXPECT_EQ(info[0].uri.ToString(), uri); + EXPECT_EQ(info[0].uri, uri); EXPECT_EQ(info[0].displayName, displayName); - EXPECT_EQ(info[0].flags, flag); - EXPECT_EQ(info[0].type, DEVICE_LOCAL_DISK); + EXPECT_EQ(info[0].deviceFlags, flag); + EXPECT_EQ(info[0].deviceType, DEVICE_LOCAL_DISK); SetSelfTokenID(selfTokenId_); } catch (...) { diff --git a/frameworks/innerkits/file_access/test/file_extension_helper_test.cpp b/frameworks/innerkits/file_access/test/file_extension_helper_test.cpp index 502a193d7d956bea21d0d06fc53c0828537634a1..a3ea7e9162ac23a89be4761ed20f2294dcfb934a 100644 --- a/frameworks/innerkits/file_access/test/file_extension_helper_test.cpp +++ b/frameworks/innerkits/file_access/test/file_extension_helper_test.cpp @@ -28,7 +28,7 @@ namespace { using namespace std; using namespace OHOS; using namespace FileAccessFwk; -int abilityId = 5003; +int ABILITY_ID = 5003; shared_ptr fah = nullptr; class FileExtensionHelperTest : public testing::Test { @@ -38,7 +38,7 @@ public: cout << "FileExtensionHelperTest code test" << endl; auto saManager = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager(); - auto remoteObj = saManager->GetSystemAbility(abilityId); + auto remoteObj = saManager->GetSystemAbility(ABILITY_ID); AAFwk::Want want; want.SetElementName("com.ohos.UserFile.ExternalFileManager", "FileExtensionAbility"); vector wants {want}; @@ -144,11 +144,11 @@ HWTEST_F(FileExtensionHelperTest, file_extension_helper_OpenFile_0000, testing:: OHOS::Security::AccessToken::AccessTokenID tokenId = tokenIdEx.tokenIdExStruct.tokenID; SetSelfTokenID(tokenId); - vector info = fah->GetRoots(); + vector info = fah->GetRoots(); for (size_t i = 0; i < info.size(); i++) { - Uri parentUri = info[i].uri; + Uri parentUri(info[i].uri); GTEST_LOG_(INFO) << parentUri.ToString(); - + Uri newDirUriTest1(""); int result = fah->Mkdir(parentUri, "test1", newDirUriTest1); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); @@ -161,7 +161,7 @@ HWTEST_F(FileExtensionHelperTest, file_extension_helper_OpenFile_0000, testing:: EXPECT_GT(result, OHOS::FileAccessFwk::ERR_OK); GTEST_LOG_(INFO) << "OpenFile_0000 result:" << result << endl; - + result = fah->Delete(newDirUriTest1); EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); } @@ -207,9 +207,9 @@ HWTEST_F(FileExtensionHelperTest, file_extension_helper_OpenFile_0002, testing:: { GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin file_extension_helper_OpenFile_0002"; try { - vector info = fah->GetRoots(); + vector info = fah->GetRoots(); for (size_t i = 0; i < info.size(); i++) { - Uri parentUri = info[i].uri; + Uri parentUri(info[i].uri); Uri newFileUri(""); int result = fah->CreateFile(parentUri, "file_extension_helper_OpenFile_0002.txt", newFileUri); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); @@ -264,9 +264,9 @@ HWTEST_F(FileExtensionHelperTest, file_extension_helper_OpenFile_0004, testing:: { GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin file_extension_helper_OpenFile_0004"; try { - vector info = fah->GetRoots(); + vector info = fah->GetRoots(); for (size_t i = 0; i < info.size(); i++) { - Uri parentUri = info[i].uri; + Uri parentUri(info[i].uri); Uri newFileUri(""); int result = fah->CreateFile(parentUri, "file_extension_helper_OpenFile_0004.txt", newFileUri); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); @@ -297,9 +297,9 @@ HWTEST_F(FileExtensionHelperTest, file_extension_helper_OpenFile_0005, testing:: { GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin file_extension_helper_OpenFile_0005"; try { - vector info = fah->GetRoots(); + vector info = fah->GetRoots(); for (size_t i = 0; i < info.size(); i++) { - Uri parentUri = info[i].uri; + Uri parentUri(info[i].uri); Uri newFileUri(""); int result = fah->CreateFile(parentUri, "file_extension_helper_OpenFile_0005.txt", newFileUri); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); @@ -330,9 +330,9 @@ HWTEST_F(FileExtensionHelperTest, file_extension_helper_OpenFile_0006, testing:: { GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin file_extension_helper_OpenFile_0006"; try { - vector info = fah->GetRoots(); + vector info = fah->GetRoots(); for (size_t i = 0; i < info.size(); i++) { - Uri parentUri = info[i].uri; + Uri parentUri(info[i].uri); Uri newFileUri(""); int result = fah->CreateFile(parentUri, "file_extension_helper_OpenFile_0006.txt", newFileUri); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); @@ -363,9 +363,9 @@ HWTEST_F(FileExtensionHelperTest, file_extension_helper_CreateFile_0000, testing { GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin file_extension_helper_CreateFile_0000"; try { - vector info = fah->GetRoots(); + vector info = fah->GetRoots(); for (size_t i = 0; i < info.size(); i++) { - Uri parentUri = info[i].uri; + Uri parentUri(info[i].uri); Uri newFileUri(""); int result = fah->CreateFile(parentUri, "file_extension_helper_CreateFile_0000.txt", newFileUri); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); @@ -465,9 +465,9 @@ HWTEST_F(FileExtensionHelperTest, file_extension_helper_CreateFile_0004, testing { GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin file_extension_helper_CreateFile_0004"; try { - vector info = fah->GetRoots(); + vector info = fah->GetRoots(); for (size_t i = 0; i < info.size(); i++) { - Uri parentUri = info[i].uri; + Uri parentUri(info[i].uri); Uri newFileUri(""); string displayName = ""; int result = fah->CreateFile(parentUri, displayName, newFileUri); @@ -493,9 +493,9 @@ HWTEST_F(FileExtensionHelperTest, file_extension_helper_Mkdir_0000, testing::ext { GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin file_extension_helper_Mkdir_0000"; try { - vector info = fah->GetRoots(); + vector info = fah->GetRoots(); for (size_t i = 0; i < info.size(); i++) { - Uri parentUri = info[i].uri; + Uri parentUri(info[i].uri); Uri newDirUriTest(""); int result = fah->Mkdir(parentUri, "file_extension_helper_Mkdir_0000", newDirUriTest); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); @@ -595,9 +595,9 @@ HWTEST_F(FileExtensionHelperTest, file_extension_helper_Mkdir_0004, testing::ext { GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin file_extension_helper_Mkdir_0004"; try { - vector info = fah->GetRoots(); + vector info = fah->GetRoots(); for (size_t i = 0; i < info.size(); i++) { - Uri parentUri = info[i].uri; + Uri parentUri(info[i].uri); Uri newDirUriTest(""); string displayName = ""; int result = fah->Mkdir(parentUri, displayName, newDirUriTest); @@ -623,9 +623,9 @@ HWTEST_F(FileExtensionHelperTest, file_extension_helper_Delete_0000, testing::ex { GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin file_extension_helper_Delete_0000"; try { - vector info = fah->GetRoots(); + vector info = fah->GetRoots(); for (size_t i = 0; i < info.size(); i++) { - Uri parentUri = info[i].uri; + Uri parentUri(info[i].uri); Uri newDirUriTest(""); int result = fah->Mkdir(parentUri, "test", newDirUriTest); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); @@ -637,7 +637,7 @@ HWTEST_F(FileExtensionHelperTest, file_extension_helper_Delete_0000, testing::ex result = fah->Delete(newFileUri); EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); GTEST_LOG_(INFO) << "Delete_0000 result:" << result << endl; - + result = fah->Delete(newDirUriTest); EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); } @@ -660,13 +660,13 @@ HWTEST_F(FileExtensionHelperTest, file_extension_helper_Delete_0001, testing::ex { GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin file_extension_helper_Delete_0001"; try { - vector info = fah->GetRoots(); + vector info = fah->GetRoots(); for (size_t i = 0; i < info.size(); i++) { - Uri parentUri = info[i].uri; + Uri parentUri(info[i].uri); Uri newDirUriTest(""); int result = fah->Mkdir(parentUri, "test", newDirUriTest); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - + result = fah->Delete(newDirUriTest); EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); GTEST_LOG_(INFO) << "Delete_0001 result:" << result << endl; @@ -713,22 +713,22 @@ HWTEST_F(FileExtensionHelperTest, file_extension_helper_Delete_0003, testing::ex { GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin file_extension_helper_Delete_0003"; try { - vector info = fah->GetRoots(); + vector info = fah->GetRoots(); for (size_t i = 0; i < info.size(); i++) { - Uri parentUri = info[i].uri; + Uri parentUri(info[i].uri); Uri newDirUriTest(""); int result = fah->Mkdir(parentUri, "test", newDirUriTest); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - + Uri selectFileUri("storage/media/100/local/files/Download/test"); result = fah->Delete(selectFileUri); EXPECT_LT(result, OHOS::FileAccessFwk::ERR_OK); - + result = fah->Delete(newDirUriTest); EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); GTEST_LOG_(INFO) << "Delete_0003 result:" << result << endl; } - + } catch (...) { GTEST_LOG_(INFO) << "FileExtensionHelperTest-an exception occurred."; } @@ -765,15 +765,15 @@ HWTEST_F(FileExtensionHelperTest, file_extension_helper_Delete_0004, testing::ex * @tc.size: MEDIUM * @tc.type: FUNC * @tc.level Level 1 - * @tc.require: SR000H0387 + * @tc.require: SR000H0386 */ HWTEST_F(FileExtensionHelperTest, file_extension_helper_Move_0000, testing::ext::TestSize.Level1) { GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin file_extension_helper_Move_0000"; try { - vector info = fah->GetRoots(); + vector info = fah->GetRoots(); for (size_t i = 0; i < info.size(); i++) { - Uri parentUri = info[i].uri; + Uri parentUri(info[i].uri); Uri newDirUriTest1(""); Uri newDirUriTest2(""); int result = fah->Mkdir(parentUri, "test1", newDirUriTest1); @@ -790,7 +790,7 @@ HWTEST_F(FileExtensionHelperTest, file_extension_helper_Move_0000, testing::ext: result = fah->Move(testUri, newDirUriTest2, testUri2); EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); GTEST_LOG_(INFO) << "Move_0000 result:" << result << endl; - + result = fah->Delete(newDirUriTest1); EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); @@ -810,15 +810,15 @@ HWTEST_F(FileExtensionHelperTest, file_extension_helper_Move_0000, testing::ext: * @tc.size: MEDIUM * @tc.type: FUNC * @tc.level Level 1 - * @tc.require: SR000H0387 + * @tc.require: SR000H0386 */ HWTEST_F(FileExtensionHelperTest, file_extension_helper_Move_0001, testing::ext::TestSize.Level1) { GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin file_extension_helper_Move_0001"; try { - vector info = fah->GetRoots(); + vector info = fah->GetRoots(); for (size_t i = 0; i < info.size(); i++) { - Uri parentUri = info[i].uri; + Uri parentUri(info[i].uri); Uri newDirUriTest1(""); Uri newDirUriTest2(""); int result = fah->Mkdir(parentUri, "test1", newDirUriTest1); @@ -852,15 +852,15 @@ HWTEST_F(FileExtensionHelperTest, file_extension_helper_Move_0001, testing::ext: * @tc.size: MEDIUM * @tc.type: FUNC * @tc.level Level 1 - * @tc.require: SR000H0387 + * @tc.require: SR000H0386 */ HWTEST_F(FileExtensionHelperTest, file_extension_helper_Move_0002, testing::ext::TestSize.Level1) { GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin file_extension_helper_Move_0002"; try { - vector info = fah->GetRoots(); + vector info = fah->GetRoots(); for (size_t i = 0; i < info.size(); i++) { - Uri parentUri = info[i].uri; + Uri parentUri(info[i].uri); Uri newDirUriTest(""); int result = fah->Mkdir(parentUri, "test", newDirUriTest); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); @@ -870,7 +870,7 @@ HWTEST_F(FileExtensionHelperTest, file_extension_helper_Move_0002, testing::ext: result = fah->Move(sourceFileUri, newDirUriTest, testUri); EXPECT_LT(result, OHOS::FileAccessFwk::ERR_OK); GTEST_LOG_(INFO) << "Move_0002 result:" << result << endl; - + result = fah->Delete(newDirUriTest); EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); } @@ -887,15 +887,15 @@ HWTEST_F(FileExtensionHelperTest, file_extension_helper_Move_0002, testing::ext: * @tc.size: MEDIUM * @tc.type: FUNC * @tc.level Level 1 - * @tc.require: SR000H0387 + * @tc.require: SR000H0386 */ HWTEST_F(FileExtensionHelperTest, file_extension_helper_Move_0003, testing::ext::TestSize.Level1) { GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin file_extension_helper_Move_0003"; try { - vector info = fah->GetRoots(); + vector info = fah->GetRoots(); for (size_t i = 0; i < info.size(); i++) { - Uri parentUri = info[i].uri; + Uri parentUri(info[i].uri); Uri newDirUriTest1(""); Uri newDirUriTest2(""); int result = fah->Mkdir(parentUri, "test1", newDirUriTest1); @@ -913,7 +913,7 @@ HWTEST_F(FileExtensionHelperTest, file_extension_helper_Move_0003, testing::ext: result = fah->Move(sourceFileUri, newDirUriTest2, testUri2); EXPECT_LT(result, OHOS::FileAccessFwk::ERR_OK); GTEST_LOG_(INFO) << "Move_0003 result:" << result << endl; - + result = fah->Delete(newDirUriTest1); EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); @@ -933,15 +933,15 @@ HWTEST_F(FileExtensionHelperTest, file_extension_helper_Move_0003, testing::ext: * @tc.size: MEDIUM * @tc.type: FUNC * @tc.level Level 1 - * @tc.require: SR000H0387 + * @tc.require: SR000H0386 */ HWTEST_F(FileExtensionHelperTest, file_extension_helper_Move_0004, testing::ext::TestSize.Level1) { GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin file_extension_helper_Move_0004"; try { - vector info = fah->GetRoots(); + vector info = fah->GetRoots(); for (size_t i = 0; i < info.size(); i++) { - Uri parentUri = info[i].uri; + Uri parentUri(info[i].uri); Uri newDirUriTest(""); int result = fah->Mkdir(parentUri, "test", newDirUriTest); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); @@ -951,7 +951,7 @@ HWTEST_F(FileExtensionHelperTest, file_extension_helper_Move_0004, testing::ext: result = fah->Move(sourceFileUri, newDirUriTest, testUri); EXPECT_LT(result, OHOS::FileAccessFwk::ERR_OK); GTEST_LOG_(INFO) << "Move_0004 result:" << result << endl; - + result = fah->Delete(newDirUriTest); EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); } @@ -968,15 +968,15 @@ HWTEST_F(FileExtensionHelperTest, file_extension_helper_Move_0004, testing::ext: * @tc.size: MEDIUM * @tc.type: FUNC * @tc.level Level 1 - * @tc.require: SR000H0387 + * @tc.require: SR000H0386 */ HWTEST_F(FileExtensionHelperTest, file_extension_helper_Move_0005, testing::ext::TestSize.Level1) { GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin file_extension_helper_Move_0005"; try { - vector info = fah->GetRoots(); + vector info = fah->GetRoots(); for (size_t i = 0; i < info.size(); i++) { - Uri parentUri = info[i].uri; + Uri parentUri(info[i].uri); Uri newDirUriTest(""); int result = fah->Mkdir(parentUri, "test1", newDirUriTest); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); @@ -990,7 +990,7 @@ HWTEST_F(FileExtensionHelperTest, file_extension_helper_Move_0005, testing::ext: result = fah->Move(testUri, targetParentUri, testUri2); EXPECT_LT(result, OHOS::FileAccessFwk::ERR_OK); GTEST_LOG_(INFO) << "Move_0005 result:" << result << endl; - + result = fah->Delete(newDirUriTest); EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); } @@ -1007,15 +1007,15 @@ HWTEST_F(FileExtensionHelperTest, file_extension_helper_Move_0005, testing::ext: * @tc.size: MEDIUM * @tc.type: FUNC * @tc.level Level 1 - * @tc.require: SR000H0387 + * @tc.require: SR000H0386 */ HWTEST_F(FileExtensionHelperTest, file_extension_helper_Move_0006, testing::ext::TestSize.Level1) { GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin file_extension_helper_Move_0006"; try { - vector info = fah->GetRoots(); + vector info = fah->GetRoots(); for (size_t i = 0; i < info.size(); i++) { - Uri parentUri = info[i].uri; + Uri parentUri(info[i].uri); Uri newDirUriTest1(""); Uri newDirUriTest2(""); int result = fah->Mkdir(parentUri, "test1", newDirUriTest1); @@ -1033,7 +1033,7 @@ HWTEST_F(FileExtensionHelperTest, file_extension_helper_Move_0006, testing::ext: result = fah->Move(testUri, targetParentUri, testUri2); EXPECT_LT(result, OHOS::FileAccessFwk::ERR_OK); GTEST_LOG_(INFO) << "Move_0006 result:" << result << endl; - + result = fah->Delete(newDirUriTest1); EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); @@ -1053,15 +1053,15 @@ HWTEST_F(FileExtensionHelperTest, file_extension_helper_Move_0006, testing::ext: * @tc.size: MEDIUM * @tc.type: FUNC * @tc.level Level 1 - * @tc.require: SR000H0387 + * @tc.require: SR000H0386 */ HWTEST_F(FileExtensionHelperTest, file_extension_helper_Move_0007, testing::ext::TestSize.Level1) { GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin file_extension_helper_Move_0007"; try { - vector info = fah->GetRoots(); + vector info = fah->GetRoots(); for (size_t i = 0; i < info.size(); i++) { - Uri parentUri = info[i].uri; + Uri parentUri(info[i].uri); Uri newDirUriTest1(""); Uri newDirUriTest2(""); int result = fah->Mkdir(parentUri, "test1", newDirUriTest1); @@ -1079,7 +1079,7 @@ HWTEST_F(FileExtensionHelperTest, file_extension_helper_Move_0007, testing::ext: result = fah->Move(testUri, targetParentUri, testUri2); EXPECT_LT(result, OHOS::FileAccessFwk::ERR_OK); GTEST_LOG_(INFO) << "Move_0007 result:" << result << endl; - + result = fah->Delete(newDirUriTest1); EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); @@ -1099,15 +1099,15 @@ HWTEST_F(FileExtensionHelperTest, file_extension_helper_Move_0007, testing::ext: * @tc.size: MEDIUM * @tc.type: FUNC * @tc.level Level 1 - * @tc.require: SR000H0387 + * @tc.require: SR000H0386 */ HWTEST_F(FileExtensionHelperTest, file_extension_helper_Move_0008, testing::ext::TestSize.Level1) { GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin file_extension_helper_Move_0008"; try { - vector info = fah->GetRoots(); + vector info = fah->GetRoots(); for (size_t i = 0; i < info.size(); i++) { - Uri parentUri = info[i].uri; + Uri parentUri(info[i].uri); Uri newDirUriTest1(""); Uri newDirUriTest2(""); int result = fah->Mkdir(parentUri, "test1", newDirUriTest1); @@ -1137,15 +1137,15 @@ HWTEST_F(FileExtensionHelperTest, file_extension_helper_Move_0008, testing::ext: * @tc.size: MEDIUM * @tc.type: FUNC * @tc.level Level 1 - * @tc.require: SR000H0387 + * @tc.require: SR000H0386 */ HWTEST_F(FileExtensionHelperTest, file_extension_helper_Move_0009, testing::ext::TestSize.Level1) { GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin file_extension_helper_Move_0009"; try { - vector info = fah->GetRoots(); + vector info = fah->GetRoots(); for (size_t i = 0; i < info.size(); i++) { - Uri parentUri = info[i].uri; + Uri parentUri(info[i].uri); Uri newDirUriTest1(""); Uri newDirUriTest2(""); int result = fah->Mkdir(parentUri, "test1", newDirUriTest1); @@ -1182,15 +1182,15 @@ HWTEST_F(FileExtensionHelperTest, file_extension_helper_Move_0009, testing::ext: * @tc.size: MEDIUM * @tc.type: FUNC * @tc.level Level 1 - * @tc.require: SR000H0387 + * @tc.require: SR000H0386 */ HWTEST_F(FileExtensionHelperTest, file_extension_helper_Move_0010, testing::ext::TestSize.Level1) { GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin file_extension_helper_Move_0010"; try { - vector info = fah->GetRoots(); + vector info = fah->GetRoots(); for (size_t i = 0; i < info.size(); i++) { - Uri parentUri = info[i].uri; + Uri parentUri(info[i].uri); Uri newDirUriTest1(""); Uri newDirUriTest2(""); int result = fah->Mkdir(parentUri, "test1", newDirUriTest1); @@ -1227,25 +1227,25 @@ HWTEST_F(FileExtensionHelperTest, file_extension_helper_Move_0010, testing::ext: * @tc.size: MEDIUM * @tc.type: FUNC * @tc.level Level 1 - * @tc.require: SR000H0387 + * @tc.require: SR000H0386 */ HWTEST_F(FileExtensionHelperTest, file_extension_helper_Move_0011, testing::ext::TestSize.Level1) { GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin file_extension_helper_Move_0011"; try { - vector info = fah->GetRoots(); + vector info = fah->GetRoots(); for (size_t i = 0; i < info.size(); i++) { - Uri parentUri = info[i].uri; + Uri parentUri(info[i].uri); Uri newDirUriTest1(""); Uri newDirUriTest2(""); int result = fah->Mkdir(parentUri, "test1", newDirUriTest1); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); - + Uri testUri(""); fah->CreateFile(newDirUriTest1, "test.txt", testUri); for (size_t j = i + 1; j < info.size(); j++) { - Uri otherUri = info[j].uri; + Uri otherUri(info[j].uri); result = fah->Mkdir(otherUri, "test2", newDirUriTest2); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); @@ -1277,15 +1277,15 @@ HWTEST_F(FileExtensionHelperTest, file_extension_helper_Move_0011, testing::ext: * @tc.size: MEDIUM * @tc.type: FUNC * @tc.level Level 1 - * @tc.require: SR000H0387 + * @tc.require: SR000H0386 */ HWTEST_F(FileExtensionHelperTest, file_extension_helper_Rename_0000, testing::ext::TestSize.Level1) { GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin file_extension_helper_Rename_0000"; try { - vector info = fah->GetRoots(); + vector info = fah->GetRoots(); for (size_t i = 0; i < info.size(); i++) { - Uri parentUri = info[i].uri; + Uri parentUri(info[i].uri); Uri newDirUriTest(""); int result = fah->Mkdir(parentUri, "test", newDirUriTest); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); @@ -1315,15 +1315,15 @@ HWTEST_F(FileExtensionHelperTest, file_extension_helper_Rename_0000, testing::ex * @tc.size: MEDIUM * @tc.type: FUNC * @tc.level Level 1 - * @tc.require: SR000H0387 + * @tc.require: SR000H0386 */ HWTEST_F(FileExtensionHelperTest, file_extension_helper_Rename_0001, testing::ext::TestSize.Level1) { GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin file_extension_helper_Rename_0001"; try { - vector info = fah->GetRoots(); + vector info = fah->GetRoots(); for (size_t i = 0; i < info.size(); i++) { - Uri parentUri = info[i].uri; + Uri parentUri(info[i].uri); Uri newDirUriTest(""); int result = fah->Mkdir(parentUri, "test", newDirUriTest); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); @@ -1349,7 +1349,7 @@ HWTEST_F(FileExtensionHelperTest, file_extension_helper_Rename_0001, testing::ex * @tc.size: MEDIUM * @tc.type: FUNC * @tc.level Level 1 - * @tc.require: SR000H0387 + * @tc.require: SR000H0386 */ HWTEST_F(FileExtensionHelperTest, file_extension_helper_Rename_0002, testing::ext::TestSize.Level1) { @@ -1373,15 +1373,15 @@ HWTEST_F(FileExtensionHelperTest, file_extension_helper_Rename_0002, testing::ex * @tc.size: MEDIUM * @tc.type: FUNC * @tc.level Level 1 - * @tc.require: SR000H0387 + * @tc.require: SR000H0386 */ HWTEST_F(FileExtensionHelperTest, file_extension_helper_Rename_0003, testing::ext::TestSize.Level1) { GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin file_extension_helper_Rename_0003"; try { - vector info = fah->GetRoots(); + vector info = fah->GetRoots(); for (size_t i = 0; i < info.size(); i++) { - Uri parentUri = info[i].uri; + Uri parentUri(info[i].uri); Uri newDirUriTest(""); int result = fah->Mkdir(parentUri, "test", newDirUriTest); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); @@ -1395,7 +1395,7 @@ HWTEST_F(FileExtensionHelperTest, file_extension_helper_Rename_0003, testing::ex result = fah->Rename(sourceFileUri, "testRename.txt", renameUri); EXPECT_LT(result, OHOS::FileAccessFwk::ERR_OK); GTEST_LOG_(INFO) << "Rename_0003 result:" << result << endl; - + result = fah->Delete(newDirUriTest); EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); } @@ -1412,7 +1412,7 @@ HWTEST_F(FileExtensionHelperTest, file_extension_helper_Rename_0003, testing::ex * @tc.size: MEDIUM * @tc.type: FUNC * @tc.level Level 1 - * @tc.require: SR000H0387 + * @tc.require: SR000H0386 */ HWTEST_F(FileExtensionHelperTest, file_extension_helper_Rename_0004, testing::ext::TestSize.Level1) { @@ -1436,15 +1436,15 @@ HWTEST_F(FileExtensionHelperTest, file_extension_helper_Rename_0004, testing::ex * @tc.size: MEDIUM * @tc.type: FUNC * @tc.level Level 1 - * @tc.require: SR000H0387 + * @tc.require: SR000H0386 */ HWTEST_F(FileExtensionHelperTest, file_extension_helper_Rename_0005, testing::ext::TestSize.Level1) { GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin file_extension_helper_Rename_0005"; try { - vector info = fah->GetRoots(); + vector info = fah->GetRoots(); for (size_t i = 0; i < info.size(); i++) { - Uri parentUri = info[i].uri; + Uri parentUri(info[i].uri); Uri newDirUriTest(""); int result = fah->Mkdir(parentUri, "test", newDirUriTest); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); @@ -1474,22 +1474,25 @@ HWTEST_F(FileExtensionHelperTest, file_extension_helper_Rename_0005, testing::ex * @tc.size: MEDIUM * @tc.type: FUNC * @tc.level Level 1 - * @tc.require: SR000H0387 + * @tc.require: SR000H0386 */ HWTEST_F(FileExtensionHelperTest, file_extension_helper_ListFile_0000, testing::ext::TestSize.Level1) { GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin file_extension_helper_ListFile_0000"; try { - vector info = fah->GetRoots(); + vector info = fah->GetRoots(); for (size_t i = 0; i < info.size(); i++) { - Uri parentUri = info[i].uri; + Uri parentUri(info[i].uri); Uri newDirUriTest(""); int result = fah->Mkdir(parentUri, "test", newDirUriTest); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); Uri testUri(""); - result = fah->CreateFile(newDirUriTest, "file_extension_helper_ListFile_0000.txt", testUri); - EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); + for (size_t j = 0; j < 2000; j++) + { + string fileName = "test" + ToString(j) + ".txt"; + fah->CreateFile(newDirUriTest, fileName, testUri); + } std::vector fileInfo = fah->ListFile(newDirUriTest); EXPECT_GT(fileInfo.size(), 0); @@ -1511,7 +1514,7 @@ HWTEST_F(FileExtensionHelperTest, file_extension_helper_ListFile_0000, testing:: * @tc.size: MEDIUM * @tc.type: FUNC * @tc.level Level 1 - * @tc.require: SR000H0387 + * @tc.require: SR000H0386 */ HWTEST_F(FileExtensionHelperTest, file_extension_helper_ListFile_0001, testing::ext::TestSize.Level1) { @@ -1534,15 +1537,15 @@ HWTEST_F(FileExtensionHelperTest, file_extension_helper_ListFile_0001, testing:: * @tc.size: MEDIUM * @tc.type: FUNC * @tc.level Level 1 - * @tc.require: SR000H0387 + * @tc.require: SR000H0386 */ HWTEST_F(FileExtensionHelperTest, file_extension_helper_ListFile_0002, testing::ext::TestSize.Level1) { GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin file_extension_helper_ListFile_0002"; try { - vector info = fah->GetRoots(); + vector info = fah->GetRoots(); for (size_t i = 0; i < info.size(); i++) { - Uri parentUri = info[i].uri; + Uri parentUri(info[i].uri); Uri newDirUriTest(""); int result = fah->Mkdir(parentUri, "test", newDirUriTest); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); @@ -1572,7 +1575,7 @@ HWTEST_F(FileExtensionHelperTest, file_extension_helper_ListFile_0002, testing:: * @tc.size: MEDIUM * @tc.type: FUNC * @tc.level Level 1 - * @tc.require: SR000H0387 + * @tc.require: SR000H0386 */ HWTEST_F(FileExtensionHelperTest, file_extension_helper_ListFile_0003, testing::ext::TestSize.Level1) { @@ -1595,34 +1598,21 @@ HWTEST_F(FileExtensionHelperTest, file_extension_helper_ListFile_0003, testing:: * @tc.size: MEDIUM * @tc.type: FUNC * @tc.level Level 1 - * @tc.require: SR000H0387 + * @tc.require: SR000H0386 */ HWTEST_F(FileExtensionHelperTest, file_extension_helper_GetRoots_0000, testing::ext::TestSize.Level1) { GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin file_extension_helper_GetRoots_0000"; try { - vector info = fah->GetRoots(); + vector info = fah->GetRoots(); EXPECT_GT(info.size(), 0); GTEST_LOG_(INFO) << "GetRoots_0000 result:" << info.size() << endl; for (size_t i = 0; i < info.size(); i++) { - GTEST_LOG_(INFO) << info[i].uri.ToString(); + GTEST_LOG_(INFO) << info[i].uri; GTEST_LOG_(INFO) << info[i].displayName; - GTEST_LOG_(INFO) << info[i].deviceId; - GTEST_LOG_(INFO) << info[i].flags; - GTEST_LOG_(INFO) << info[i].type; - - string uri = info[i].uri.ToString(); - string findStr = "external"; - uint32_t flag = 58; - DeviceType type = DEVICE_LOCAL_DISK; - - if (uri.find(findStr) == string::npos) { - type = DEVICE_SHARED_DISK; - } - - EXPECT_EQ(info[i].flags, flag); - EXPECT_EQ(info[i].type, type); + GTEST_LOG_(INFO) << info[i].deviceFlags; + GTEST_LOG_(INFO) << info[i].deviceType; } } catch (...) { GTEST_LOG_(INFO) << "FileExtensionHelperTest-an exception occurred."; @@ -1644,13 +1634,13 @@ HWTEST_F(FileExtensionHelperTest, file_extension_helper_allInterface_0000, testi GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin file_extension_helper_allInterface_0000"; try { auto saManager = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager(); - auto remoteObj = saManager->GetSystemAbility(abilityId); + auto remoteObj = saManager->GetSystemAbility(ABILITY_ID); vector wants = FileAccessHelper::GetRegisterFileAccessExtAbilityInfo(); shared_ptr fahs = FileAccessHelper::Creator(remoteObj, wants); - vector info = fahs->GetRoots(); + vector info = fahs->GetRoots(); for (size_t i = 0; i < info.size(); i++) { - Uri parentUri = info[i].uri; + Uri parentUri(info[i].uri); string uri = parentUri.ToString(); GTEST_LOG_(INFO) << uri; @@ -1681,7 +1671,7 @@ HWTEST_F(FileExtensionHelperTest, file_extension_helper_allInterface_0000, testi EXPECT_GT(result, OHOS::FileAccessFwk::ERR_OK); GTEST_LOG_(INFO) << "OpenFile_0000 result:" << result << endl; - + result = fahs->Delete(newDirUriTest1); EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); @@ -1695,46 +1685,46 @@ HWTEST_F(FileExtensionHelperTest, file_extension_helper_allInterface_0000, testi } /** - * @tc.number: SUB_user_file_service_file_extension_helper_IsFileExist_0000 - * @tc.name: file_extension_helper_IsFileExist_0000 - * @tc.desc: Test function of IsFileExist interface for SUCCESS. + * @tc.number: SUB_user_file_service_file_extension_helper_Access_0000 + * @tc.name: file_extension_helper_Access_0000 + * @tc.desc: Test function of Access interface for SUCCESS. * @tc.size: MEDIUM * @tc.type: FUNC * @tc.level Level 1 - * @tc.require: SR000H0387 + * @tc.require: SR000H0386 */ -HWTEST_F(FileExtensionHelperTest, file_extension_helper_IsFileExist_0000, testing::ext::TestSize.Level1) +HWTEST_F(FileExtensionHelperTest, file_extension_helper_Access_0000, testing::ext::TestSize.Level1) { - GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin file_extension_helper_IsFileExist_0000"; + GTEST_LOG_(INFO) << "FileExtensionHelperTest-begin file_extension_helper_Access_0000"; try { uint64_t selfTokenId_ = GetSelfTokenID(); - vector info = fah->GetRoots(); + vector info = fah->GetRoots(); for (size_t i = 0; i < info.size(); i++) { - Uri parentUri = info[i].uri; + Uri parentUri(info[i].uri); GTEST_LOG_(INFO) << parentUri.ToString(); - + Uri newDirUriTest(""); int result = fah->Mkdir(parentUri, "test1", newDirUriTest); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); Uri newFileUri(""); - result = fah->CreateFile(newDirUriTest, "file_extension_helper_IsFileExist_0000.txt", newFileUri); + result = fah->CreateFile(newDirUriTest, "file_extension_helper_Access_0000.txt", newFileUri); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); bool isExist = false; - result = fah->IsFileExist(newDirUriTest, isExist); + result = fah->Access(newDirUriTest, isExist); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); EXPECT_TRUE(isExist); - result = fah->IsFileExist(newFileUri, isExist); + result = fah->Access(newFileUri, isExist); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); EXPECT_TRUE(isExist); - + result = fah->Delete(newDirUriTest); EXPECT_GE(result, OHOS::FileAccessFwk::ERR_OK); - result = fah->IsFileExist(newDirUriTest, isExist); + result = fah->Access(newDirUriTest, isExist); EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK); EXPECT_FALSE(isExist); } @@ -1743,6 +1733,6 @@ HWTEST_F(FileExtensionHelperTest, file_extension_helper_IsFileExist_0000, testin } catch (...) { GTEST_LOG_(INFO) << "FileExtensionHelperTest-an exception occurred."; } - GTEST_LOG_(INFO) << "FileExtensionHelperTest-end file_extension_helper_IsFileExist_0000"; + GTEST_LOG_(INFO) << "FileExtensionHelperTest-end file_extension_helper_Access_0000"; } } // namespace \ No newline at end of file diff --git a/interfaces/kits/napi/common/file_extension_info_napi.cpp b/interfaces/kits/napi/common/file_extension_info_napi.cpp index c355723620449269f5ab7c7bd32feaaa2ca55ba3..b0c47349fe96c70ad2fef9582919860a10d6e46a 100644 --- a/interfaces/kits/napi/common/file_extension_info_napi.cpp +++ b/interfaces/kits/napi/common/file_extension_info_napi.cpp @@ -19,6 +19,7 @@ #include #include +#include "filemgmt_libn.h" #include "file_access_extension_info.h" #include "file_access_notify_common.h" #include "hilog_wrapper.h" @@ -27,6 +28,8 @@ namespace OHOS { namespace FileAccessFwk { +using namespace FileManagement::LibN; + static napi_value CreateStringUtf8(napi_env env, const std::string &str) { napi_value value = nullptr; @@ -37,16 +40,6 @@ static napi_value CreateStringUtf8(napi_env env, const std::string &str) return value; } -static napi_value CreateUint32(napi_env env, uint32_t val) -{ - napi_value value = nullptr; - if (napi_create_uint32(env, val, &value) != napi_ok) { - HILOG_ERROR("CreateUint32, value is not napi_ok"); - return nullptr; - } - return value; -} - static napi_value FileInfoConstructor(napi_env env, napi_callback_info info) { size_t argc = 0; @@ -63,7 +56,7 @@ static napi_value FileInfoConstructor(napi_env env, napi_callback_info info) return res; } -static napi_value DeviceInfoConstructor(napi_env env, napi_callback_info info) +static napi_value RootInfoConstructor(napi_env env, napi_callback_info info) { size_t argc = 0; napi_value args[1] = {0}; @@ -72,23 +65,34 @@ static napi_value DeviceInfoConstructor(napi_env env, napi_callback_info info) napi_status status = napi_get_cb_info(env, info, &argc, args, &res, &data); if (status != napi_ok) { - HILOG_ERROR("DeviceInfoConstructor, status is not napi_ok"); + HILOG_ERROR("RootInfoConstructor, status is not napi_ok"); return nullptr; } return res; } -void InitFlag(napi_env env, napi_value exports) +void InitDeviceFlag(napi_env env, napi_value exports) +{ + char propertyName[] = "DeviceFlag"; + napi_property_descriptor desc[] = { + DECLARE_NAPI_STATIC_PROPERTY("SUPPORTS_READ", NVal::CreateInt32(env, DEVICE_FLAG_SUPPORTS_READ).val_), + DECLARE_NAPI_STATIC_PROPERTY("SUPPORTS_WRITE", NVal::CreateInt32(env, DEVICE_FLAG_SUPPORTS_WRITE).val_) + }; + napi_value obj = nullptr; + napi_create_object(env, &obj); + napi_define_properties(env, obj, sizeof(desc) / sizeof(desc[0]), desc); + napi_set_named_property(env, exports, propertyName, obj); +} + +void InitDocumentFlag(napi_env env, napi_value exports) { - char propertyName[] = "FLAG"; + char propertyName[] = "DocumentFlag"; napi_property_descriptor desc[] = { - DECLARE_NAPI_STATIC_PROPERTY("SUPPORTS_THUMBNAIL", CreateUint32(env, FLAG_SUPPORTS_THUMBNAIL)), - DECLARE_NAPI_STATIC_PROPERTY("SUPPORTS_WRITE", CreateUint32(env, FLAG_SUPPORTS_WRITE)), - DECLARE_NAPI_STATIC_PROPERTY("SUPPORTS_READ", CreateUint32(env, FLAG_SUPPORTS_READ)), - DECLARE_NAPI_STATIC_PROPERTY("SUPPORTS_DELETE", CreateUint32(env, FLAG_SUPPORTS_DELETE)), - DECLARE_NAPI_STATIC_PROPERTY("SUPPORTS_RENAME", CreateUint32(env, FLAG_SUPPORTS_RENAME)), - DECLARE_NAPI_STATIC_PROPERTY("SUPPORTS_MOVE", CreateUint32(env, FLAG_SUPPORTS_MOVE)) + DECLARE_NAPI_STATIC_PROPERTY("REPRESENTS_FILE", NVal::CreateInt32(env, DOCUMENT_FLAG_REPRESENTS_FILE).val_), + DECLARE_NAPI_STATIC_PROPERTY("REPRESENTS_DIR", NVal::CreateInt32(env, DOCUMENT_FLAG_REPRESENTS_DIR).val_), + DECLARE_NAPI_STATIC_PROPERTY("SUPPORTS_READ", NVal::CreateInt32(env, DOCUMENT_FLAG_SUPPORTS_READ).val_), + DECLARE_NAPI_STATIC_PROPERTY("SUPPORTS_WRITE", NVal::CreateInt32(env, DOCUMENT_FLAG_SUPPORTS_WRITE).val_) }; napi_value obj = nullptr; napi_create_object(env, &obj); @@ -100,8 +104,8 @@ void InitNotifyType(napi_env env, napi_value exports) { char propertyName[] = "NotifyType"; napi_property_descriptor desc[] = { - DECLARE_NAPI_STATIC_PROPERTY("DEVICE_ONLINE", CreateUint32(env, NOTIFY_DEVICE_ONLINE)), - DECLARE_NAPI_STATIC_PROPERTY("DEVICE_OFFLINE", CreateUint32(env, NOTIFY_DEVICE_OFFLINE)) + DECLARE_NAPI_STATIC_PROPERTY("DEVICE_ONLINE", NVal::CreateInt32(env, NOTIFY_DEVICE_ONLINE).val_), + DECLARE_NAPI_STATIC_PROPERTY("DEVICE_OFFLINE", NVal::CreateInt32(env, NOTIFY_DEVICE_OFFLINE).val_) }; napi_value obj = nullptr; napi_create_object(env, &obj); @@ -130,13 +134,14 @@ void InitDeviceType(napi_env env, napi_value exports) { char propertyName[] = "DeviceType"; napi_property_descriptor desc[] = { - DECLARE_NAPI_STATIC_PROPERTY("LOCAL_DISK", CreateUint32(env, DEVICE_LOCAL_DISK)), - DECLARE_NAPI_STATIC_PROPERTY("SHARED_DISK", CreateUint32(env, DEVICE_SHARED_DISK)), - DECLARE_NAPI_STATIC_PROPERTY("SHARED_TERMINAL", CreateUint32(env, DEVICE_SHARED_TERMINAL)), - DECLARE_NAPI_STATIC_PROPERTY("NETWORK_NEIGHBORHOODS", CreateUint32(env, DEVICE_NETWORK_NEIGHBORHOODS)), - DECLARE_NAPI_STATIC_PROPERTY("EXTERNAL_MTP", CreateUint32(env, DEVICE_EXTERNAL_MTP)), - DECLARE_NAPI_STATIC_PROPERTY("EXTERNAL_USB", CreateUint32(env, DEVICE_EXTERNAL_USB)), - DECLARE_NAPI_STATIC_PROPERTY("EXTERNAL_CLOUD", CreateUint32(env, DEVICE_EXTERNAL_CLOUD)) + DECLARE_NAPI_STATIC_PROPERTY("LOCAL_DISK", NVal::CreateInt32(env, DEVICE_LOCAL_DISK).val_), + DECLARE_NAPI_STATIC_PROPERTY("SHARED_DISK", NVal::CreateInt32(env, DEVICE_SHARED_DISK).val_), + DECLARE_NAPI_STATIC_PROPERTY("SHARED_TERMINAL", NVal::CreateInt32(env, DEVICE_SHARED_TERMINAL).val_), + DECLARE_NAPI_STATIC_PROPERTY("NETWORK_NEIGHBORHOODS", + NVal::CreateInt32(env, DEVICE_NETWORK_NEIGHBORHOODS).val_), + DECLARE_NAPI_STATIC_PROPERTY("EXTERNAL_MTP", NVal::CreateInt32(env, DEVICE_EXTERNAL_MTP).val_), + DECLARE_NAPI_STATIC_PROPERTY("EXTERNAL_USB", NVal::CreateInt32(env, DEVICE_EXTERNAL_USB).val_), + DECLARE_NAPI_STATIC_PROPERTY("EXTERNAL_CLOUD", NVal::CreateInt32(env, DEVICE_EXTERNAL_CLOUD).val_) }; napi_value obj = nullptr; napi_create_object(env, &obj); @@ -144,19 +149,20 @@ void InitDeviceType(napi_env env, napi_value exports) napi_set_named_property(env, exports, propertyName, obj); } -void InitDeviceInfo(napi_env env, napi_value exports) +void InitRootInfo(napi_env env, napi_value exports) { - char className[] = "DeviceInfo"; + char className[] = "RootInfo"; napi_property_descriptor desc[] = { + { "deviceType", nullptr, nullptr, nullptr, nullptr, CreateStringUtf8(env, "deviceType"), + napi_writable, nullptr }, { "uri", nullptr, nullptr, nullptr, nullptr, CreateStringUtf8(env, "uri"), napi_writable, nullptr }, - { "displayName", nullptr, nullptr, nullptr, nullptr, - CreateStringUtf8(env, "displayName"), napi_writable, nullptr }, - { "deviceId", nullptr, nullptr, nullptr, nullptr, CreateStringUtf8(env, "deviceId"), napi_writable, nullptr }, - { "flags", nullptr, nullptr, nullptr, nullptr, CreateStringUtf8(env, "flags"), napi_writable, nullptr }, - { "type", nullptr, nullptr, nullptr, nullptr, CreateStringUtf8(env, "type"), napi_writable, nullptr } + { "displayName", nullptr, nullptr, nullptr, nullptr, CreateStringUtf8(env, "displayName"), + napi_writable, nullptr }, + { "deviceFlags", nullptr, nullptr, nullptr, nullptr, CreateStringUtf8(env, "deviceFlags"), + napi_writable, nullptr } }; napi_value obj = nullptr; - napi_define_class(env, className, NAPI_AUTO_LENGTH, DeviceInfoConstructor, nullptr, + napi_define_class(env, className, NAPI_AUTO_LENGTH, RootInfoConstructor, nullptr, sizeof(desc) / sizeof(*desc), desc, &obj); napi_set_named_property(env, exports, className, obj); } diff --git a/interfaces/kits/napi/common/file_extension_info_napi.h b/interfaces/kits/napi/common/file_extension_info_napi.h index 6fc9c0dea8cd2fc80326c873e2f31d4f0a541f23..3bf190e54ae4ac8a7b5c2bb44bd8dc88705e912c 100644 --- a/interfaces/kits/napi/common/file_extension_info_napi.h +++ b/interfaces/kits/napi/common/file_extension_info_napi.h @@ -20,11 +20,12 @@ namespace OHOS { namespace FileAccessFwk { -void InitFlag(napi_env env, napi_value exports); +void InitDeviceFlag(napi_env env, napi_value exports); +void InitDocumentFlag(napi_env env, napi_value exports); void InitNotifyType(napi_env env, napi_value exports); void InitDeviceType(napi_env env, napi_value exports); void InitFileInfo(napi_env env, napi_value exports); -void InitDeviceInfo(napi_env env, napi_value exports); +void InitRootInfo(napi_env env, napi_value exports); } // namespace FileAccessFwk } // namespace OHOS #endif // FILE_EXTENSION_INFO_NAPI_H \ No newline at end of file diff --git a/interfaces/kits/napi/file_access_module/napi_fileaccess_helper.cpp b/interfaces/kits/napi/file_access_module/napi_fileaccess_helper.cpp index 8d24febd6e617bfc38fb4c69c72580df52aa767b..b88e2c494138b5e576383a0ceacc1e74ac86eecb 100644 --- a/interfaces/kits/napi/file_access_module/napi_fileaccess_helper.cpp +++ b/interfaces/kits/napi/file_access_module/napi_fileaccess_helper.cpp @@ -88,12 +88,12 @@ static napi_value FileAccessHelperConstructor(napi_env env, napi_callback_info i auto finalize = [](napi_env env, void *data, void *hint) { FileAccessHelper *objectInfo = static_cast(data); - g_fileAccessHelperList.remove_if([objectInfo](const std::shared_ptr &fileAccessHelper) { - return objectInfo == fileAccessHelper.get(); - }); if (objectInfo != nullptr) { objectInfo->Release(); - delete objectInfo; + g_fileAccessHelperList.remove_if([objectInfo](const std::shared_ptr &fileAccessHelper) { + return objectInfo == fileAccessHelper.get(); + }); + objectInfo = nullptr; } }; if (napi_wrap(env, thisVar, fileAccessHelper.get(), finalize, nullptr, nullptr) != napi_ok) { @@ -201,14 +201,14 @@ napi_value FileAccessHelperInit(napi_env env, napi_value exports) { napi_property_descriptor properties[] = { DECLARE_NAPI_FUNCTION("openFile", NAPI_OpenFile), - DECLARE_NAPI_FUNCTION("mkdir", NAPI_Mkdir), + DECLARE_NAPI_FUNCTION("mkDir", NAPI_Mkdir), DECLARE_NAPI_FUNCTION("createFile", NAPI_CreateFile), DECLARE_NAPI_FUNCTION("delete", NAPI_Delete), DECLARE_NAPI_FUNCTION("move", NAPI_Move), DECLARE_NAPI_FUNCTION("rename", NAPI_Rename), DECLARE_NAPI_FUNCTION("listFile", NAPI_ListFile), DECLARE_NAPI_FUNCTION("getRoots", NAPI_GetRoots), - DECLARE_NAPI_FUNCTION("isFileExist", NAPI_IsFileExist), + DECLARE_NAPI_FUNCTION("access", NAPI_Access), DECLARE_NAPI_FUNCTION("on", NAPI_On), DECLARE_NAPI_FUNCTION("off", NAPI_Off) }; @@ -650,7 +650,7 @@ napi_value NAPI_GetRoots(napi_env env, napi_callback_info info) return nullptr; } - auto result = std::make_shared>(); + auto result = std::make_shared>(); auto cbExec = [result, fileAccessHelper]() -> NError { *result = fileAccessHelper->GetRoots(); return NError(ERRNO_NOERR); @@ -659,7 +659,7 @@ napi_value NAPI_GetRoots(napi_env env, napi_callback_info info) if (err) { return { env, err.GetNapiErr(env) }; } - napi_value jsArray = WrapArrayDeviceInfoToJS(env, *result); + napi_value jsArray = WrapArrayRootInfoToJS(env, *result); return {env, jsArray}; }; @@ -678,7 +678,7 @@ napi_value NAPI_GetRoots(napi_env env, napi_callback_info info) return NAsyncWorkCallback(env, thisVar, cb).Schedule(procedureName, cbExec, cbComplete).val_; } -napi_value NAPI_IsFileExist(napi_env env, napi_callback_info info) +napi_value NAPI_Access(napi_env env, napi_callback_info info) { NFuncArg funcArg(env, info); if (!funcArg.InitArgs(NARG_CNT::ONE, NARG_CNT::TWO)) { @@ -704,7 +704,7 @@ napi_value NAPI_IsFileExist(napi_env env, napi_callback_info info) auto cbExec = [uriString, result, fileAccessHelper]() -> NError { OHOS::Uri uri(uriString); bool isExist = false; - int ret = fileAccessHelper->IsFileExist(uri, isExist); + int ret = fileAccessHelper->Access(uri, isExist); *result = isExist; return NError(ret); }; @@ -715,7 +715,7 @@ napi_value NAPI_IsFileExist(napi_env env, napi_callback_info info) return { NVal::CreateBool(env, *result) }; }; - const std::string procedureName = "isFileExist"; + const std::string procedureName = "access"; NVal thisVar(env, funcArg.GetThisVar()); if (funcArg.GetArgc() == NARG_CNT::ONE) { return NAsyncWorkPromise(env, thisVar).Schedule(procedureName, cbExec, cbComplete).val_; @@ -731,7 +731,7 @@ napi_value NAPI_IsFileExist(napi_env env, napi_callback_info info) napi_value NAPI_On(napi_env env, napi_callback_info info) { NFuncArg funcArg(env, info); - if (!funcArg.InitArgs(NARG_CNT::ONE, NARG_CNT::ONE)) { + if (!funcArg.InitArgs(NARG_CNT::ONE)) { NError(EINVAL).ThrowErr(env, "Number of arguments unmatched"); return nullptr; } @@ -754,8 +754,9 @@ napi_value NAPI_On(napi_env env, napi_callback_info info) return nullptr; } - if (fileAccessHelper->On(callback) != ERR_OK) { - NError(EINVAL).ThrowErr(env, "FileAccessHelper::On fail."); + auto retCode = fileAccessHelper->On(callback); + if (retCode != ERR_OK) { + NError(retCode).ThrowErr(env, "FileAccessHelper::On fail."); return nullptr; } return NVal::CreateUndefined(env).val_; @@ -764,7 +765,7 @@ napi_value NAPI_On(napi_env env, napi_callback_info info) napi_value NAPI_Off(napi_env env, napi_callback_info info) { NFuncArg funcArg(env, info); - if (!funcArg.InitArgs(NARG_CNT::ZERO, NARG_CNT::ONE)) { + if (!funcArg.InitArgs(NARG_CNT::ZERO)) { NError(EINVAL).ThrowErr(env, "Number of arguments unmatched"); return nullptr; } @@ -775,34 +776,10 @@ napi_value NAPI_Off(napi_env env, napi_callback_info info) return nullptr; } - auto result = std::make_shared(); - auto cbExec = [result, fileAccessHelper]() -> NError { - *result = fileAccessHelper->Off(); - if (*result != ERR_OK) { - return NError([result]() -> std::tuple { - return { *result, "FileAccessHelper::Off fail." }; - }); - } - return NError(ERRNO_NOERR); - }; - auto cbComplete = [result](napi_env env, NError err) -> NVal { - if (err) { - return { env, err.GetNapiErr(env) }; - } - return NVal::CreateInt32(env, (int32_t)(*result)); - }; - - std::string procedureName = "Off"; - if (funcArg.GetArgc() == NARG_CNT::ZERO) { - return NAsyncWorkPromise(env, NVal(env, funcArg.GetThisVar())).Schedule(procedureName, cbExec, cbComplete).val_; - } else { - NVal cb(env, funcArg[NARG_POS::FIRST]); - if (!cb.TypeIs(napi_function)) { - NError(EINVAL).ThrowErr(env, "Argument must be function"); - return nullptr; - } - return NAsyncWorkCallback(env, NVal(env, funcArg.GetThisVar()), cb) - .Schedule(procedureName, cbExec, cbComplete).val_; + auto retCode = fileAccessHelper->Off(); + if (retCode != ERR_OK) { + NError(retCode).ThrowErr(env, "FileAccessHelper::Off fail."); + return nullptr; } return NVal::CreateUndefined(env).val_; } diff --git a/interfaces/kits/napi/file_access_module/napi_fileaccess_helper.h b/interfaces/kits/napi/file_access_module/napi_fileaccess_helper.h index b0ec4e817304f096f8bc30f4a32babee59ccc152..d0a4dbffa9adf42d31f41d949535b9a0a5a0d4c8 100644 --- a/interfaces/kits/napi/file_access_module/napi_fileaccess_helper.h +++ b/interfaces/kits/napi/file_access_module/napi_fileaccess_helper.h @@ -32,7 +32,7 @@ namespace FileAccessFwk { napi_value NAPI_Rename(napi_env env, napi_callback_info info); napi_value NAPI_ListFile(napi_env env, napi_callback_info info); napi_value NAPI_GetRoots(napi_env env, napi_callback_info info); - napi_value NAPI_IsFileExist(napi_env env, napi_callback_info info); + napi_value NAPI_Access(napi_env env, napi_callback_info info); napi_value NAPI_On(napi_env env, napi_callback_info info); napi_value NAPI_Off(napi_env env, napi_callback_info info); } diff --git a/interfaces/kits/napi/file_access_module/napi_notify_callback.cpp b/interfaces/kits/napi/file_access_module/napi_notify_callback.cpp index 9e79d0d8e7910ece3c9e26bf17e0d7af22136b69..9c59a2de2ccdb844327f784cb4d1e31151c9430c 100644 --- a/interfaces/kits/napi/file_access_module/napi_notify_callback.cpp +++ b/interfaces/kits/napi/file_access_module/napi_notify_callback.cpp @@ -59,9 +59,9 @@ int NapiNotifyCallback::OnNotify(const NotifyMessage& message) CallbackParam *param = reinterpret_cast(work->data); NVal napiNotifyMessage = NVal::CreateObject(param->callback_->env_); napiNotifyMessage.AddProp("deviceType", - NVal::CreateInt32(param->callback_->env_, (int32_t)param->message_.deviceType).val_); + NVal::CreateInt32(param->callback_->env_, param->message_.deviceType).val_); napiNotifyMessage.AddProp("notifyType", - NVal::CreateInt32(param->callback_->env_, (int32_t)param->message_.notifyType).val_); + NVal::CreateInt32(param->callback_->env_, param->message_.notifyType).val_); napiNotifyMessage.AddProp("srcUri", NVal::CreateUTF8String(param->callback_->env_, param->message_.srcUri).val_); napiNotifyMessage.AddProp("dstUri", @@ -81,14 +81,10 @@ int NapiNotifyCallback::OnNotify(const NotifyMessage& message) delete work; }); if (ret != 0) { - if (work->data != nullptr) { - delete (CallbackParam *)(work->data); - work->data = nullptr; - } - if (work != nullptr) { - delete work; - work = nullptr; - } + delete (CallbackParam *)(work->data); + work->data = nullptr; + delete work; + work = nullptr; return ERR_NOTIFY_FAIL; } return ERR_OK; diff --git a/interfaces/kits/napi/file_access_module/native_fileaccess_module.cpp b/interfaces/kits/napi/file_access_module/native_fileaccess_module.cpp index 19127d0ae1f51a51764174a3c2c8e7903fb6ee40..e094d85cfb6c0031accabf46ba24c4fb014699aa 100644 --- a/interfaces/kits/napi/file_access_module/native_fileaccess_module.cpp +++ b/interfaces/kits/napi/file_access_module/native_fileaccess_module.cpp @@ -28,11 +28,12 @@ EXTERN_C_START static napi_value Init(napi_env env, napi_value exports) { FileAccessHelperInit(env, exports); - InitFlag(env, exports); + InitDeviceFlag(env, exports); + InitDocumentFlag(env, exports); InitNotifyType(env, exports); InitDeviceType(env, exports); InitFileInfo(env, exports); - InitDeviceInfo(env, exports); + InitRootInfo(env, exports); return exports; } EXTERN_C_END diff --git a/interfaces/kits/napi/file_extension_info_module/BUILD.gn b/interfaces/kits/napi/file_extension_info_module/BUILD.gn index c72090e2c0487dd48c239de9fe6ba8b720d8501f..caa8cd4380e71769ffbbc12fda6b80fc38d5bdd2 100644 --- a/interfaces/kits/napi/file_extension_info_module/BUILD.gn +++ b/interfaces/kits/napi/file_extension_info_module/BUILD.gn @@ -23,9 +23,10 @@ ohos_shared_library("fileextensioninfo") { include_dirs = [ ".", - "${UFS_BASE_PATH}/interfaces/kits/napi/common", + "//foundation/distributeddatamgr/distributedfile/utils/filemgmt_libn/include", "${FRAMEWORK_PATH}/innerkits/file_access/include", "${FRAMEWORK_PATH}/innerkits/file_access/include/notify", + "${UFS_BASE_PATH}/interfaces/kits/napi/common", "${UFS_BASE_PATH}/utils", ] @@ -34,7 +35,10 @@ ohos_shared_library("fileextensioninfo") { "module_export_napi.cpp", ] - deps = [ "//foundation/arkui/napi:ace_napi" ] + deps = [ + "//foundation/arkui/napi:ace_napi", + "//foundation/distributeddatamgr/distributedfile/utils/filemgmt_libn:filemgmt_libn", + ] external_deps = [ "ability_base:want", diff --git a/interfaces/kits/napi/file_extension_info_module/module_export_napi.cpp b/interfaces/kits/napi/file_extension_info_module/module_export_napi.cpp index 1f34d44379827f7ecea6830e2d1102d73e3bc9b2..aecf94166f3e7a7a63e9da384e3bcbc4d4516b02 100644 --- a/interfaces/kits/napi/file_extension_info_module/module_export_napi.cpp +++ b/interfaces/kits/napi/file_extension_info_module/module_export_napi.cpp @@ -23,11 +23,12 @@ namespace OHOS { namespace FileAccessFwk { napi_value FileExtensionInfoExport(napi_env env, napi_value exports) { - InitFlag(env, exports); + InitDeviceFlag(env, exports); + InitDocumentFlag(env, exports); InitNotifyType(env, exports); InitDeviceType(env, exports); InitFileInfo(env, exports); - InitDeviceInfo(env, exports); + InitRootInfo(env, exports); return exports; } diff --git a/services/file_extension_hap/entry/src/main/ets/FileExtensionAbility/FileExtensionAbility.ts b/services/file_extension_hap/entry/src/main/ets/FileExtensionAbility/FileExtensionAbility.ts index 3b05398ebfa25e0d8b0b5c5d897f41e72b235f2c..c4ee729b324ab3875edbe87fba5af595510c64f4 100644 --- a/services/file_extension_hap/entry/src/main/ets/FileExtensionAbility/FileExtensionAbility.ts +++ b/services/file_extension_hap/entry/src/main/ets/FileExtensionAbility/FileExtensionAbility.ts @@ -21,13 +21,14 @@ import fileExtensionInfo from "@ohos.fileExtensionInfo" import hilog from '@ohos.hilog' import process from '@ohos.process'; -const FLAG = fileExtensionInfo.FLAG; +const DeviceFlag = fileExtensionInfo.DeviceFlag; +const DocumentFlag = fileExtensionInfo.DocumentFlag; const NotifyType = fileExtensionInfo.NotifyType; -const DEVICE_TYPE = fileExtensionInfo.DeviceType; +const DeviceType = fileExtensionInfo.DeviceType; const BUNDLE_NAME = 'com.ohos.UserFile.ExternalFileManager'; const DEFAULT_MODE = 0o666; const CREATE_FILE_FLAGS = 0o100; -const FILE_ACCESS = 'fileAccess://'; +const URI_SCHEME = 'datashare://'; const DOMAIN_CODE = 0x0001; const TAG = 'js_server'; const ERR_OK = 0; @@ -65,8 +66,8 @@ export default class FileExtAbility extends Extension { } checkUri(uri) { - if (uri.indexOf(FILE_ACCESS) == 0) { - uri = uri.replace(FILE_ACCESS, ''); + if (uri.indexOf(URI_SCHEME) == 0) { + uri = uri.replace(URI_SCHEME, ''); return /^\/([^\/]+\/?)+$/.test(uri); } else { return false; @@ -83,6 +84,7 @@ export default class FileExtAbility extends Extension { if (arr[1].indexOf('/') > 0) { path = path.replace(arr[1].split('/')[0], ''); } + path = path.replace('/' + BUNDLE_NAME, ''); if (path.charAt(path.length - 1) == '/') { path = path.substr(0, path.length - 1); } @@ -156,7 +158,7 @@ export default class FileExtAbility extends Extension { } isCrossDeviceLink(sourceFileUri, targetParentUri) { - let roots = this.getRoots(); + let roots = this.getRoots().roots; for (let index = 0; index < roots.length; index++) { let uri = roots[index].uri; if (sourceFileUri.indexOf(uri) == 0 && targetParentUri.indexOf(uri) == 0) { @@ -209,7 +211,7 @@ export default class FileExtAbility extends Extension { } try { let newFileUri = this.genNewFileUri(parentUri, displayName); - if (this.isFileExist(newFileUri).isExist) { + if (this.access(newFileUri).isExist) { return { uri: '', code: ERR_ERROR, @@ -414,9 +416,9 @@ export default class FileExtAbility extends Extension { } } - isFileExist(sourceFileUri) { + access(sourceFileUri) { if (!this.checkUri(sourceFileUri)) { - hilog.error(DOMAIN_CODE, TAG, 'isFileExist checkUri fail'); + hilog.error(DOMAIN_CODE, TAG, 'access checkUri fail'); return { isExist: false, code: ERR_ERROR, @@ -426,7 +428,7 @@ export default class FileExtAbility extends Extension { let path = this.getPath(sourceFileUri); fileio.accessSync(path); } catch (e) { - hilog.error(DOMAIN_CODE, TAG, 'isFileExist error ' + e.message); + hilog.error(DOMAIN_CODE, TAG, 'access error ' + e.message); if (e.message == 'No such file or directory') { return { isExist: false, @@ -460,10 +462,16 @@ export default class FileExtAbility extends Extension { try { let dirent = dir.readSync(); let stat = fileio.statSync(path + '/' + dirent.name); + let mode = DocumentFlag.SUPPORTS_READ | DocumentFlag.SUPPORTS_WRITE; + if (stat.isDirectory()) { + mode |= DocumentFlag.REPRESENTS_DIR; + } else { + mode |= DocumentFlag.REPRESENTS_FILE; + } infos.push({ uri: this.genNewFileUri(sourceFileUri, dirent.name), fileName: dirent.name, - mode: '' + stat.mode, + mode: mode, size: stat.size, mtime: stat.mtime, mimeType: '', @@ -487,18 +495,10 @@ export default class FileExtAbility extends Extension { getRoots() { let roots = getVolumeInfoList().concat({ - uri: 'fileAccess:///data/storage/el1/bundle/storage_daemon', - displayName: 'storage_daemon', - deviceId: '', - type: DEVICE_TYPE.SHARED_DISK, - flags: FLAG.SUPPORTS_WRITE | - FLAG.SUPPORTS_DELETE | - FLAG.SUPPORTS_RENAME | - FLAG.SUPPORTS_COPY | - FLAG.SUPPORTS_MOVE | - FLAG.SUPPORTS_REMOVE | - FLAG.DIR_SUPPORTS_CREATE | - FLAG.DIR_PREFERS_LAST_MODIFIED, + uri: 'datashare:///com.ohos.UserFile.ExternalFileManager/data/storage/el1/bundle/storage_daemon', + displayName: 'shared_disk', + deviceType: DeviceType.SHARED_DISK, + deviceFlags: DeviceFlag.SUPPORTS_READ | DeviceFlag.SUPPORTS_WRITE, }); return { roots: roots, diff --git a/services/file_extension_hap/entry/src/main/ets/FileExtensionAbility/VolumeManager.ts b/services/file_extension_hap/entry/src/main/ets/FileExtensionAbility/VolumeManager.ts index dbc8b69795bb685ac2a078c68996d2e565625155..03f572e55d772a5e273f18708da5e92c2e5e0ab4 100644 --- a/services/file_extension_hap/entry/src/main/ets/FileExtensionAbility/VolumeManager.ts +++ b/services/file_extension_hap/entry/src/main/ets/FileExtensionAbility/VolumeManager.ts @@ -18,29 +18,25 @@ import fileExtensionInfo from "@ohos.fileExtensionInfo" if (!globalThis.volumeInfoList) { globalThis.volumeInfoList = []; } -const FLAG = fileExtensionInfo.FLAG; -const DEVICE_TYPE = fileExtensionInfo.DeviceType; +const DeviceFlag = fileExtensionInfo.DeviceFlag; +const DeviceType = fileExtensionInfo.DeviceType; function init() { + globalThis.volumeInfoList = []; volumeManager.getAllVolumes().then((volumes) => { - let flags = FLAG.SUPPORTS_WRITE | - FLAG.SUPPORTS_DELETE | - FLAG.SUPPORTS_RENAME | - FLAG.SUPPORTS_COPY | - FLAG.SUPPORTS_MOVE | - FLAG.SUPPORTS_REMOVE | - FLAG.DIR_SUPPORTS_CREATE | - FLAG.DIR_PREFERS_LAST_MODIFIED; + let flags = DeviceFlag.SUPPORTS_READ | DeviceFlag.SUPPORTS_WRITE; for (let i = 0; i < volumes.length; i++) { let volume = volumes[i]; + if (!volume.path) { + continue; + } let volumeInfo = { 'volumeId': volume.id, 'fsUuid': volume.uuid, 'path': volume.path, 'uri': path2uri('', volume.path), 'displayName': volume.id, - 'deviceId': '', - 'flags': flags, - 'type': DEVICE_TYPE.EXTERNAL_USB + 'deviceFlags': flags, + 'deviceType': DeviceType.EXTERNAL_USB } globalThis.volumeInfoList.push(volumeInfo); } @@ -52,7 +48,7 @@ function addVolumeInfo(volumeInfo) { } function path2uri(id, path) { - return `fileAccess://${id}${path}`; + return `datashare://${id}/com.ohos.UserFile.ExternalFileManager${path}`; } function findVolumeInfo(volumeId) { diff --git a/services/file_extension_hap/entry/src/main/module.json b/services/file_extension_hap/entry/src/main/module.json index 2d0708d1cf005a0a8d741af092d8530a40c39ef7..4173f4c23e3f4c2b7e52c59a0ba63dfa6e7aa0a3 100644 --- a/services/file_extension_hap/entry/src/main/module.json +++ b/services/file_extension_hap/entry/src/main/module.json @@ -18,7 +18,7 @@ "srcEntrance": "./ets/FileExtensionAbility/FileExtensionAbility.ts", "name": "FileExtensionAbility", "type": "fileAccess", - "uri": "fileAccess://fileAccess", + "uri": "fileAccess://com.ohos.UserFile.ExternalFileManager", "visible": true } ], diff --git a/utils/file_access_framework_errno.h b/utils/file_access_framework_errno.h index e6384178534cd0a36c8c89f8295ddf30bba3c8ff..d45271e89f266eb0976348e78e5cc56e415708c2 100644 --- a/utils/file_access_framework_errno.h +++ b/utils/file_access_framework_errno.h @@ -34,7 +34,7 @@ enum { ERR_PARAM_NUMBER, // Parameter number is abnormal ERR_INVALID_PARAM, // invalid parameter ERR_PARSER_FAIL, // parser js result error - ERR_OPERATION_NOT_PERMITTED, // Operation not permitted + ERR_OPERATION_NOT_SUPPORT, // Operation not support ERR_GET_FILEACCESS_HELPER, // get fileAccessHelper fail ERR_INVALID_NOTIFY, // invalid notify ERR_REMOVE_NOTIFY_FAIL, // remove notify fail