跳转到内容

os error 183 当文件已存在时,无法创建该文件 Claude Code

Quick fix

Windows 下配置目录为 Junction 时 cc-switch 会报 os error 183,需暂时移除目录链接或等待官方修复。

报错原文
IO 错误: C:\Users\xxx\.claude: 当文件已存在时,无法创建该文件。 (os error 183)

在 Windows 系统中,如果用户为了节省 C 盘空间,使用 mklink /J 等方式将 Claude Code 或 Codex 的配置目录(如 .claude 或 .codex)设置为目录联接(Junction),cc-switch 在切换配置时会调用 std::fs::create_dir_all。该函数在面对已存在的目录联接时会错误地返回 183 错误,导致切换失败。

  1. 暂时移除配置目录的 Junction 链接,将其恢复为普通目录,然后再使用 cc-switch 切换配置。

  2. 等待 cc-switch 发布修复版本。官方需要在调用 create_dir_all 前检查解析路径是否已是目录,以避免对 Junction 报 183 错误。

ToolClaude Code / Codex
Version3.19.1
PlatformsWindows
报错后配置到底有没有写入成功?
根据用户反馈,报错后配置有时仍会写入成功,弹窗具有误导性,但建议移除 Junction 以确保稳定。
为什么普通文件读写正常,只有 cc-switch 报错?
因为 cc-switch 底层使用了 Rust 的 std::fs::create_dir_all,该函数在 Windows 下对已存在的 Junction 会返回 183 错误,而普通的读写操作可以正常穿透 Junction。

这是一个非官方社区 wiki,与 cc-switch 作者及项目本身无隶属关系。内容整理自项目公开的 GitHub issues。本站不分发任何软件。