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

Tauri中resourceDir()返回路径异常:多出\\?\\前缀的问题

Tauri resourceDir() 返回路径带\?\前缀的处理方案

这个\?\前缀是Windows系统的扩展长度路径标识,用来支持超过260字符的长路径,Tauri底层依赖Rust的路径处理逻辑,会自动给路径加上这个前缀,属于正常行为,Windows系统完全能识别并使用这个路径,不会影响功能。

如果需要把路径转换成常规格式(比如要展示给用户、和其他不支持长路径前缀的工具兼容),可以在JS层直接做字符串截取:

修改你的前端代码如下:

import { resourceDir } from "@tauri-apps/api/path";

export default function App() {
  return (
    <>
      <button
        onClick={async () => {
          let resourceDirPath = await resourceDir();
          // 移除Windows的扩展路径前缀
          if (resourceDirPath.startsWith('\\\\?\\')) {
            resourceDirPath = resourceDirPath.slice(4);
          }
          console.log(resourceDirPath);
        }}
      >
        Click
      </button>
    </>
  );
}

如果是在Rust后端处理路径,也可以用Path::display()方法获取不带前缀的字符串示例:

use tauri::api::path::resource_dir;
use std::path::Path;

#[tauri::command]
fn get_resource_dir() -> String {
    let dir = resource_dir().expect("Failed to get resource dir");
    dir.display().to_string()
}

注意:如果只是用Tauri自身的文件系统API操作这个路径,完全不需要处理前缀,带前缀的路径是有效的,不会出问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 20:54:56