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 cc40f38aa00d039f4d4c77ca922fc149f0a77522..8b6123d2232838bcb750810fab3870f87c539721 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 103f9fec0d6bed7e84f6045ed053af508f9eecdc..5a5ec191d5f7a24da4c49af4d5261764fb213921 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 };