os error 183 当文件已存在时,无法创建该文件 Claude Code
Quick fix
Windows 下配置目录为 Junction 时 cc-switch 会报 os error 183,需暂时移除目录链接或等待官方修复。
Symptom
Section titled “Symptom”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 错误,导致切换失败。
暂时移除配置目录的 Junction 链接,将其恢复为普通目录,然后再使用 cc-switch 切换配置。
等待 cc-switch 发布修复版本。官方需要在调用 create_dir_all 前检查解析路径是否已是目录,以避免对 Junction 报 183 错误。
Affected Versions
Section titled “Affected Versions”ToolClaude Code / Codex
Version3.19.1
PlatformsWindows
Source Issues
Section titled “Source Issues”本页汇总自 3 个真实 issue
- 报错后配置到底有没有写入成功?
- 根据用户反馈,报错后配置有时仍会写入成功,弹窗具有误导性,但建议移除 Junction 以确保稳定。
- 为什么普通文件读写正常,只有 cc-switch 报错?
- 因为 cc-switch 底层使用了 Rust 的 std::fs::create_dir_all,该函数在 Windows 下对已存在的 Junction 会返回 183 错误,而普通的读写操作可以正常穿透 Junction。
这是一个非官方社区 wiki,与 cc-switch 作者及项目本身无隶属关系。内容整理自项目公开的 GitHub issues。本站不分发任何软件。