HarmonyOS 鸿蒙Next 使用 DocumentViewPicker select 配置 fileSuffixFilters 为自定义文件后缀名无法显示
HarmonyOS 鸿蒙Next 使用 DocumentViewPicker select 配置 fileSuffixFilters 为自定义文件后缀名无法显示
如标题所述,这是个bug还是特性,我配置 fileSuffixFilters: ['.md']
可以筛选出 .md
后缀格式的文件,但是配置自定义后缀就筛选不出来。
配置 fileSuffixFilters: ['.md']
,如下图所示,唤起的文件选择器会自动把 .md
后缀格式的文件列出来,这样用户可以很方便地选择文件,不用再通过输入框去寻找。
配置 fileSuffixFilters: ['.sli']
,如下图所示,唤起的文件选择器不会自动把 .sli
后缀格式的文件列出来,但是通过输入框可以搜索到 .sli
后缀格式的文件。
更多关于HarmonyOS 鸿蒙Next 使用 DocumentViewPicker select 配置 fileSuffixFilters 为自定义文件后缀名无法显示的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
我无法复现你说的问题,我目前尝试的demo如下:
import { common } from '@kit.AbilityKit';
import { picker } from '@kit.CoreFileKit';
import { BusinessError } from '@kit.BasicServicesKit';
@Entry
@Component
struct Index {
@State message: string = 'hello World';
build() {
Row() {
Column() {
Text(this.message)
.fontSize(50)
.fontWeight(FontWeight.Bold)
.onClick(() => {
let context = getContext(this) as common.Context; // 请确保getContext(this)返回结果为UIAbilityContext
select(context)
})
}
.width('100%')
}
.height('100%')
}
}
async function select(context: common.Context) {
// 需确保 context 由 UIAbilityContext 转换而来
try {
let documentSelectOptions = new picker.DocumentSelectOptions();
documentSelectOptions.fileSuffixFilters = ['.aaa']
let documentPicker = new picker.DocumentViewPicker(context);
documentPicker.select(documentSelectOptions).then((documentSelectResult: Array<string>) => {
console.info('DocumentViewPicker.select successfully, documentSelectResult uri: ' +
JSON.stringify(documentSelectResult));
}).catch((err: BusinessError) => {
console.error('DocumentViewPicker.select failed with err: ' + JSON.stringify(err));
});
} catch (error) {
let err: BusinessError = error as BusinessError;
console.error('DocumentViewPicker failed with err: ' + JSON.stringify(err));
}
}
我先是使用apk作为后缀,可以选择到我下载里面的apk文件,后面我把apk文件的后缀重命名改成aaa,然后用上面的demo代码跑,结果也能搜索到先前从apk改成aaa后缀的文件,所以你说的情况在我这边不成立,能麻烦详细描述下你这边的具体情况或者demo代码吗,看看到底是哪个环节问题
你好!我把你代码拷贝过来运行了一下,依然存在我说的问题,而且在我手机上甚至连 apk 文件都识别不出来,只能识别出 .md 和 .jpg 这些后缀的文件,甚至我把后缀改成 .json 也识别不出来,但是我进一步点击文件选择器的搜索框,输入目标文件,是能搜到的。
我的手机是 mate60 Pro ,软件版本是 5.0.0.115。
我的软件已上架了,名字叫“书立”,你可以试一下,点击首页右侧更多按钮,先导出 .sli 格式文件,然后再导入 .sli 格式文件,会出现上面我说的问题。
我这边是mate60 5.0.0.106,我用同事的mate60 5.0.0.123,我两个手机都试了你说的书立,都是可以搜索到的啊,比如我导出到某个目录,我要去那个目录下去找,而不是直接就能看到,你现在是到导出目录下也看不到吗?是的话升级下版本看看,
你好!使用搜索框搜文件,无论后缀是 .sli
还是 .md
,都可以搜到。
我这里遇到的问题是,使用 fileSuffixFilters: ['.sli']
配置后,没法自动把 .sli
后缀的文件给批量筛选出来显示到文件选择器上,但是配置 fileSuffixFilters: ['.md']
可以自动筛选出 .md
后缀格式的文件。
我想了解的是 fileSuffixFilters: ['.md']
这种配置是不是有一种自动筛选的功能,自动把相应后缀的文件提取出来,显示到文件选择面板上,让用户手动选择合适的文件,同时用户也可以使用搜索框搜索文件。
关于配置 fileSuffixFilters: ['.md']
和 fileSuffixFilters: ['.sli']
所弹出的文件选择器的不同,我在下一个评论里以富文本的形式展示出来。
在HarmonyOS鸿蒙Next系统中,若使用DocumentViewPicker
组件并配置fileSuffixFilters
为自定义文件后缀名但无法显示,这通常是因为配置方式或后缀名格式有误。
请确保你按照以下步骤正确配置:
-
检查后缀名格式:
fileSuffixFilters
接受一个字符串数组,每个字符串代表一个后缀名,确保后缀名前不带点(.),例如应配置为["txt", "pdf"]
而非[".txt", ".pdf"]
。 -
确认配置位置:确保
fileSuffixFilters
是在DocumentViewPicker
的对应属性或配置方法中正确设置。 -
重启应用:修改配置后,确保重启应用以使更改生效。
-
检查系统权限:确认应用已获取必要的文件访问权限,特别是针对你希望筛选的文件类型。
-
版本兼容性:检查当前鸿蒙系统版本是否支持你正在使用的
DocumentViewPicker
特性及配置方式。
如果以上步骤均无误,但问题依旧存在,可能是系统bug或特定版本的限制。此时,如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html。