diff --git a/frameworks/js/napi/file_access_module/root_info/napi_root_info_exporter.cpp b/frameworks/js/napi/file_access_module/root_info/napi_root_info_exporter.cpp index 7c1f257b4254125956372624cc04d2339312d0af..0880b3bf6c5830ba1a5690ee98cacf0a37702881 100644 --- a/frameworks/js/napi/file_access_module/root_info/napi_root_info_exporter.cpp +++ b/frameworks/js/napi/file_access_module/root_info/napi_root_info_exporter.cpp @@ -126,8 +126,8 @@ napi_value NapiRootInfoExporter::ListFile(napi_env env, napi_callback_info info) fileIteratorEntity->offset = 0; fileIteratorEntity->filter = std::move(filter); fileIteratorEntity->flag = CALL_LISTFILE; - ret = rootEntity->fileAccessHelper->ListFile(fileInfo, fileIteratorEntity->offset, filter, - fileIteratorEntity->memInfo); + ret = rootEntity->fileAccessHelper->ListFile(fileInfo, fileIteratorEntity->offset, + fileIteratorEntity->filter, fileIteratorEntity->memInfo); if (ret != ERR_OK) { FileAccessFwk::SharedMemoryOperation::DestroySharedMemory(fileIteratorEntity->memInfo); return NapiFileInfoExporter::ThrowError(env, ret); @@ -177,7 +177,7 @@ napi_value NapiRootInfoExporter::ScanFile(napi_env env, napi_callback_info info) fileIteratorEntity->filter = std::move(filter); fileIteratorEntity->flag = CALL_SCANFILE; auto ret = rootEntity->fileAccessHelper->ScanFile(fileInfo, fileIteratorEntity->offset, - MAX_COUNT, filter, fileIteratorEntity->fileInfoVec); + MAX_COUNT, fileIteratorEntity->filter, fileIteratorEntity->fileInfoVec); if (ret != ERR_OK) { return NapiFileInfoExporter::ThrowError(env, ret); } 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 747d59d5c06e2557e8ffdd6ce87e7a7956c7066c..13a6f6d696f43c3cb48b3b294f35d1213b0dcaba 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 @@ -681,6 +681,7 @@ export default class FileExtAbility extends Extension { } let fileInfo = {}; try { + let mimetype = ""; let path = getPath(selectFileUri); let fileName = this.getFileName(path); let stat = fs.statSync(path); @@ -689,6 +690,7 @@ export default class FileExtAbility extends Extension { mode |= documentFlag.REPRESENTS_DIR; } else { mode |= documentFlag.REPRESENTS_FILE; + mimetype = fs.getMimeType(fileName); } selectFileUri = encodePathOfUri(selectFileUri); fileInfo = { @@ -698,7 +700,7 @@ export default class FileExtAbility extends Extension { mode: mode, size: stat.size, mtime: stat.mtime, - mimeType: '', + mimeType: mimetype, }; } catch (e) { hilog.error(DOMAIN_CODE, TAG, 'getFileInfoFromUri error ' + e.message); @@ -739,10 +741,12 @@ export default class FileExtAbility extends Extension { let fileName = this.getFileName(selectFileRelativePath); let stat = fs.statSync(selectFileRelativePath); let mode = documentFlag.SUPPORTS_READ | documentFlag.SUPPORTS_WRITE; + let mimetype = ""; if (stat.isDirectory()) { mode |= documentFlag.REPRESENTS_DIR; } else { mode |= documentFlag.REPRESENTS_FILE; + mimetype = fs.getMimeType(fileName); } let selectFileUri = encodePathOfUri(this.relativePath2uri(selectFileRelativePath)); fileInfo = { @@ -752,7 +756,7 @@ export default class FileExtAbility extends Extension { mode: mode, size: stat.size, mtime: stat.mtime, - mimeType: '', + mimeType: mimetype, }; } catch (e) { hilog.error(DOMAIN_CODE, TAG, 'getFileInfoFromRelativePath error ' + e.message); 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 24185366e6a47f3eb0a2bf3cabaa8bd827acf932..86e0f644fe6cf137b7c860c5eb9737dfab954335 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 @@ -12,6 +12,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +// @ts-nocheck import hilog from '@ohos.hilog'; import fs from '@ohos.file.fs'; import type { Filter } from '@ohos.file.fs'; @@ -43,6 +44,10 @@ function hasFilter(filter: Filter) : boolean { if (fileSizeOver !== null && fileSizeOver >= 0) { return true; } + let mimeTypeArray = filter.mimeType; + if (mimeTypeArray !== null && mimeTypeArray.length >= 0) { + return true; + } return false; } @@ -81,7 +86,7 @@ function buildFilterOptions(filter: Filter, listNum: number, recursion: boolean) } let mimeType = filter.mimeType; if (mimeType !== null && mimeType.length > 0) { - hilog.error(DOMAIN_CODE, TAG, 'mimeType is not supported as a filter condition'); + optionFilter.mimeType = mimeType; } let excludeMedia = filter.excludeMedia; if (excludeMedia !== null && excludeMedia === true) { @@ -153,10 +158,12 @@ function getFileInfos(sourceFileUri: string, offset: number, count: number, filt let mode = documentFlag.SUPPORTS_READ | documentFlag.SUPPORTS_WRITE; let filePath = getNewPathOrUri(path, fileNameList[i]); let stat = fs.statSync(filePath); + let mimetype:string = ""; if (stat.isDirectory()) { mode |= documentFlag.REPRESENTS_DIR; } else { mode |= documentFlag.REPRESENTS_FILE; + mimetype = fs.getMimeType(fileNameList[i]); } let newFileUri = getNewPathOrUri(sourceFileUri, fileNameList[i]); newFileUri = encodePathOfUri(newFileUri); @@ -167,7 +174,7 @@ function getFileInfos(sourceFileUri: string, offset: number, count: number, filt mode: mode, size: stat.size, mtime: stat.mtime, - mimeType: '', + mimeType: mimetype, }); } } catch (e) {