From 8bc5b127d034284811c3a8df37e4651972ca268b Mon Sep 17 00:00:00 2001 From: zhangxiaoliang25 Date: Sat, 19 Aug 2023 05:10:02 +0000 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=AA=92=E4=BD=93=E5=BA=93?= =?UTF-8?q?=E9=93=BE=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zhangxiaoliang25 Change-Id: Iacf7629cdbb98a1ac718d4c503b93626d188d251 --- .../file_info/napi_file_info_exporter.cpp | 11 ++++++++++- .../FileExtensionAbility/ListScanFileInfo.ts | 17 ++++++++++++++++- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/frameworks/js/napi/file_access_module/file_info/napi_file_info_exporter.cpp b/frameworks/js/napi/file_access_module/file_info/napi_file_info_exporter.cpp index cc40f38a..8b6123d2 100644 --- a/frameworks/js/napi/file_access_module/file_info/napi_file_info_exporter.cpp +++ b/frameworks/js/napi/file_access_module/file_info/napi_file_info_exporter.cpp @@ -24,6 +24,7 @@ namespace OHOS { namespace FileAccessFwk { +const std::string MEDIA_PHOTO_URI = "file://media/virtual_photo/1"; bool NapiFileInfoExporter::Export() { std::vector props = { @@ -133,6 +134,10 @@ napi_value NapiFileInfoExporter::ListFile(napi_env env, napi_callback_info info) fileIteratorEntity->pos = 0; fileIteratorEntity->filter = std::move(filter); fileIteratorEntity->flag = 0; + if (!(fileIteratorEntity->fileInfo.uri).compare(MEDIA_PHOTO_URI)) { + HILOG_INFO("Photos directory is empty"); + return NVal(env, objFileIteratorExporter).val_; + } auto ret = fileInfoEntity->fileAccessHelper->ListFile(fileInfoEntity->fileInfo, fileIteratorEntity->offset, MAX_COUNT, fileIteratorEntity->filter, fileIteratorEntity->fileInfoVec); if (ret != ERR_OK) { @@ -198,6 +203,10 @@ napi_value NapiFileInfoExporter::ScanFile(napi_env env, napi_callback_info info) fileIteratorEntity->pos = 0; fileIteratorEntity->filter = std::move(filter); fileIteratorEntity->flag = 1; + if (!(fileIteratorEntity->fileInfo.uri).compare(MEDIA_PHOTO_URI)) { + HILOG_INFO("Photos directory is empty"); + return NVal(env, objFileIteratorExporter).val_; + } auto ret = fileInfoEntity->fileAccessHelper->ScanFile(fileInfoEntity->fileInfo, fileIteratorEntity->offset, MAX_COUNT, fileIteratorEntity->filter, fileIteratorEntity->fileInfoVec); if (ret != ERR_OK) { @@ -308,4 +317,4 @@ std::string NapiFileInfoExporter::GetClassName() return NapiFileInfoExporter::className_; } } // namespace FileAccessFwk -} // namespace OHOS \ No newline at end of file +} // namespace OHOS diff --git a/services/file_extension_hap/entry/src/main/ets/FileExtensionAbility/ListScanFileInfo.ts b/services/file_extension_hap/entry/src/main/ets/FileExtensionAbility/ListScanFileInfo.ts index 103f9fec..5a5ec191 100644 --- a/services/file_extension_hap/entry/src/main/ets/FileExtensionAbility/ListScanFileInfo.ts +++ b/services/file_extension_hap/entry/src/main/ets/FileExtensionAbility/ListScanFileInfo.ts @@ -22,6 +22,18 @@ import { getPath, DOMAIN_CODE, TAG } from './Common'; const documentFlag = fileExtensionInfo.DocumentFlag; const ERR_OK = 0; const E_GETRESULT = 14300004; +const ADD_MEDIA_URI = 'file://docs/storage/Users/currentUser'; +const MEDIA_PHOTO_FILE_INFO:Fileinfo = { + uri: 'file://media/virtual_photo/1', + relativePath: '/virtual_photo/1', + fileName: 'Photos', + mode: fileExtensionInfo.DocumentFlag.REPRESENTS_DIR | + fileExtensionInfo.DocumentFlag.SUPPORTS_READ | + fileExtensionInfo.DocumentFlag.SUPPORTS_WRITE, + size: 0, + mtime: 0, + mimeType: '' +}; function hasFilter(filter: Filter) : boolean { if (filter === null) { @@ -176,6 +188,9 @@ function getFileInfos(sourceFileUri: string, offset: number, count: number, filt mimeType: '', }); } + if (sourceFileUri === ADD_MEDIA_URI) { + infos.push(MEDIA_PHOTO_FILE_INFO); + } } catch (e) { hilog.error(DOMAIN_CODE, TAG, 'getFileInfos error ' + e.message); return { @@ -188,4 +203,4 @@ function getFileInfos(sourceFileUri: string, offset: number, count: number, filt code: ERR_OK, }; } -export { getFileInfos }; \ No newline at end of file +export { getFileInfos }; -- Gitee