文件增强使用指导

← 返回文件增强组件参考 · 全部使用指导

文件增强使用指导

不可见组件:功能完整的文件工具箱。基于广受欢迎的 FileTools 拓展(v10)内化为原生组件并更名「文件增强」, 方法名与原拓展一致,新项目无需再导入 .aix;同时修复了原拓展完成事件不触发、Android 10 以上路径解析等问题。

功能亮点

  • 文件操作:复制、移动、删除(目录连同内容一起删)、重命名、创建目录、判断是否存在,结果直接返回真假。
  • 大文件不卡界面:复制文件、列目录有「异步」版本,完成后在对应事件里拿结果。
  • 目录浏览:列出目录下的文件(可按扩展名过滤,如 "jpg,png",可递归子目录、可包含文件夹)、只列子文件夹。
  • 文件信息:文件或文件夹大小、最后修改时间(自定义日期格式)、MIME 类型。
  • 存储与路径:应用专属目录(无需存储权限)、剩余/总空间; 文件路径与 content:// URI 互转,把相册、文件选择器返回的 URI 变成可直接使用的文件路径。
  • 素材读取:以 // 开头的路径指向应用素材(如 //data.json),打包 APK 和 AI伴侣 调试里都能用。

需要在桌面创建快捷方式请用应用工具组件。

路径写法:/storage、/sdcard、/data、/mnt 开头的系统路径原样使用;其它路径(无论是否以 / 开头)都从外部存储根目录算起;// 开头为应用素材。

快速上手

  1. 拖一个 文件增强 到屏幕(不可见组件,位于「数据存储」分类);
  2. 下面是最常用的「异步列目录 + 异步复制」模式:目录里文件多时用异步版本,完成后在事件里取结果,避免卡界面。

各案例独立使用;组合到同一屏幕时,将同名事件的处理合并到一个事件积木中。

when 按钮1.Click() {
  文件增强1.FileListAsync(文件增强1.ApplicationSpecificDirectory(), "txt", true, false)
}

when 文件增强1.GotFileList(文件列表) {
  标签1.Text = join("共找到 ", length(文件列表), " 个文件")
}

when 文件增强1.FileCopied(是否成功, 响应) {
  if 是否成功 {
    标签1.Text = "复制完成"
  } else {
    标签1.Text = join("复制失败:", 响应)
  }
}

复制、移动、创建目录、删除都直接返回真假,可以接在「如果」里判断;只有大文件复制需要用 异步复制文件(来源,目标)(CopyFileAsync),在文件复制完成时(是否成功,响应)(FileCopied)事件里拿结果。

搭建与测试

在设计器拖入本组件和案例涉及的按钮、标签、布局等组件,按案例中的名称重命名。先运行最小案例,确认事件返回,再增加业务逻辑。示例中的素材先上传到项目,服务器地址、令牌、文件路径换成自己的值。

可见组件需要有非零宽高;不可见工具组件必须由属性或方法启动。设计器展示样式不等于运行时已加载数据或绑定目标。联机测试应使用包含本组件的 AI 伴侣;涉及系统入口或权限的行为还要编译安装后验证。

案例:列出项目素材

放文件增强、一个按钮和一个列表显示框。此案例不写入公共目录,用于检查项目打包的素材名。

when 按钮_素材.Click() {
  列表显示框1.Elements = 文件增强1.FileListFromAssets()
}

应用专属目录无需公共存储权限。content:// 不是普通文件路径;转换后先检查文件是否存在。异步复制结果在 FileCopied 中处理。

属性、方法与事件速查

完整参数类型、默认值和平台说明见组件参考。下表按调用入口列出用途;有完成事件的方法在事件中读取结果。

入口 用途
应用专属目录(ApplicationSpecificDirectory) 返回应用专属外部目录路径。
拷贝文件(从,到)(CopyFile) 复制文件,返回是否成功。大文件请用「异步复制文件」以免卡住界面。
异步复制文件(来源,目标)(CopyFileAsync) 在后台复制大文件,完成后触发「文件复制完成时」事件。
创建目录(目录)(CreateDirectory) 创建目录(含上级目录),返回是否成功;目录已存在也返回真。
删除(文件或文件夹名)(Delete) 删除文件或目录(目录连同内容一起删),返回是否成功。
是否存在(文件名或目录名)(Exists) 检查文件或目录是否存在。
异步获取文件列表(目录,过滤器,含文件夹,递归)(FileListAsync) 异步获取目录文件列表,完成后触发 GotFileList。
获取资源文件列表(FileListFromAssets) 返回素材根目录文件列表。
文件或目录大小(路径)(FileOrFolderSize) 返回文件或目录大小(字节)。
文件路径(文件名)(FilePath) 返回文件名对应的绝对路径。
文件列表(目录,过滤器,含文件夹,递归)(FilesList) 返回目录中的文件列表,可按扩展名过滤。
目录列表(目录)(FolderList) 返回目录下的直接子目录列表。
剩余空间(目录名称)(FreeSpace) 返回目录可用空间(字节)。
获取内容URI(文件名)(GetContentUri) 将文件名转换为 file:// 内容 URI。
是否文件(路径)(IsFile) 判断路径是否为文件。
最后修改时间(路径,格式)(LastModTime) 返回文件最后修改时间,format 使用 SimpleDateFormat 格式。
MIME类型(文件名)(MimeType) 根据文件名返回 MIME 类型。
移动文件(从,到)(MoveFile) 移动文件(也可用来改名),返回是否成功。
URI转路径(内容URI)(PathFromUri) 将 content URI 转换为文件路径。
重命名文件(文件名,新文件名)(RenameFile) 重命名文件。
总空间(目录名称)(TotalSpace) 返回目录总空间(字节)。
文件复制完成时(是否成功,响应)(FileCopied) 异步复制完成后触发。
获得文件列表时(文件列表)(GotFileList) 异步列出文件完成后触发。

常见问题与验收

检查项 操作与预期
初始化 对照案例检查是否已经调用加载、注册、连接或显示方法;仅拖入组件不会替你执行这些步骤。
结果返回 将成功事件和失败事件都接到标签,记录事件参数;异步操作完成前不读取结果属性。
输入配置 检查素材名大小写、网址是否为直接资源地址、文件是否存在、编号和索引是否在范围内。
平台与权限 按组件参考中的平台说明测试;授权被拒绝时应有明确提示,不继续假定操作成功。
最小案例 先验证页面中的最小案例,再验证第二个场景;重复操作、取消、返回屏幕后结果应符合事件说明。

完整 .aia 源码与操作指导

下载 .aia 源码

设备巡检记录的真实文件闭环:打包素材→应用专属独立目录→复制/异步复制→移动/重命名→文本内容读取→递归列表/过滤→URI与空间→可恢复清理。案例不申请共享存储权限,所有修改仅限FileToolsAllFeatures目录,素材永不移动或删除。

导入 FileToolsAllFeatures.aia,连接最新伴侣,或编译独立安装包。真机/伴侣运行尚未实测。

API / 功能 操作入口 预期结果
ApplicationSpecificDirectory、CreateDirectory、CopyFile 初始化或准备目录 专属目录下创建FileToolsAllFeatures/sub;真实文本与CSV复制。已有目录时CreateDirectory可能假,结合Exists判断
FileListFromAssets、FilePath、Exists、IsFile、FileOrFolderSize 素材及所选文件属性入口 枚举真实sample.txt、notes.csv;素材与副本路径、大小可核对
CopyFileAsync、FileCopied 异步复制或不存在源测试 真实成功/失败事件和response;事件未到不再启动新的文件操作
MoveFile、RenameFile 同步复制→移动→重命名→选择renamed.txt读内容 真实源/目的存在变化;RenameFile无返回值,必须核对目的实际存在
FilesList、FolderList、FileListAsync、GotFileList 过滤txt,csv,切换递归与目录,再同步/异步列出 真实列表;扩展名不带点;子目录与空过滤可比较
MimeType、LastModTime、TotalSpace、FreeSpace 文件信息及空间按钮 实际MIME、修改时间、总/剩余空间字节;平台值不同属正常
GetContentUri、PathFromUri 选已存在记录再转URI核对 展示真实URI和还原路径;这不是授予外部应用访问权限
Delete、恢复与清理 删除copy.txt;确认删除独立目录;再次准备 只影响本案例文件;原打包素材只读且保留,重新复制可恢复
真实内容与错误恢复 record.txt读取,失败后恢复源再读 显示打包中文记录原文,异步失败不冒充成功;不存在文件先给提示

所有返回值均用于界面反馈,错误由底部错误区展示。设计器采用明确非默认配置,初始化与界面同步。API 覆盖检查按最终 AIA 检查方法、事件、属性读取与设置及设计器配置,不能替代真实设备验证。

设备记录文件管理

导入方法:项目 → 导入项目(.aia)→ 选择下载的 .aia 源码文件。 设备巡检记录的真实文件闭环:打包素材→应用专属独立目录→复制/异步复制→移动/重命名→文本内容读取→递归列表/过滤→URI与空间→可恢复清理。案例不申请共享存储权限,所有修改仅限FileToolsAllFeatures目录,素材永不移动或删除。 覆盖检查 23/23。首次载入及保存重开均0个错误,真实后台导入、安装包编译通过;真机/伴侣/硬件联调尚未实测。全部属性读写、方法与事件的操作入口和预期结果见组件指导。

文档反馈