You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter Windows:点击按钮调用系统默认3D查看器打开指定FBX文件

解决方案:在Flutter Windows中调用默认程序打开本地FBX文件

你不需要把本地文件路径配置到pubspec.yaml里,因为这是磁盘上的独立文件,不是应用打包的资源。下面提供两种可行的实现方式:

方法一:使用Dart原生Process API(无第三方依赖)

直接调用Windows系统的cmd命令,通过start指令唤起默认关联程序打开目标文件,代码示例如下:

import 'dart:io';

void open3DModel() async {
  final targetPath = r'E:\Downloads\1.fbx'; // 原始字符串避免转义问题
  
  try {
    // 调用cmd执行start命令,空引号用于兼容路径含空格的场景
    await Process.run('cmd.exe', ['/c', 'start', '', targetPath]);
  } catch (e) {
    print('打开文件失败:$e');
    // 这里可以添加UI层面的错误提示
  }
}

在按钮的onPressed中调用open3DModel()即可。

方法二:使用process_run包(简化跨平台操作)

如果你需要更简洁的跨平台调用方式,可以使用process_run包:

  1. 在pubspec.yaml中添加依赖:
dependencies:
  process_run: ^0.12.4
  1. 实现代码:
import 'package:process_run/process_run.dart';

void openFbxViewer() async {
  final filePath = r'E:\Downloads\1.fbx';
  try {
    // run命令会自动适配不同平台的系统调用
    await run('start', ['', filePath], runInShell: true);
  } catch (e) {
    print('操作失败:$e');
  }
}

注意事项

  • 确保目标文件路径正确,且当前用户有读取该文件的权限
  • 如果路径包含空格,必须保留start后的空引号,否则命令会解析错误
  • 可以提前通过File(targetPath).exists()判断文件是否存在,避免无效调用

内容的提问来源于stack exchange,提问作者Harshana

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 00:47:08