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

求助:Windows系统下OneDrive长路径写入文件触发FileNotFoundError的解决方法

求助:Windows系统下OneDrive长路径写入文件触发FileNotFoundError的解决方法

我最近碰到一个特别棘手的问题,想请各位大佬帮忙看看怎么解决:

我用的是最新版且已完全更新的Windows系统,最近发现只要在OneDrive的某个长路径下(具体是C:\Users\user\OneDrive - UniversityX XXXXXXXXXX XXXXXXXX\XXXXXXXXX这类带学校名称的长路径),不管是用VSCode运行Python代码:

file = "dataset.csv"
with open(file, "w") as f:
    f.write(data)

还是用Matlab或者其他程序尝试保存文件,都会触发FileNotFoundError: [Errno 2] No such file or directory: 'dataset.csv'的错误,但把代码或程序放在其他短路径、非OneDrive的长路径下就完全正常。

我已经按照网上的方法在Windows注册表中开启了长路径设置,并且重启了电脑,但问题依然存在。有没有人知道这到底是哪里出问题了,该怎么修复呢?


以下是整理的可能解决思路,大家也可以补充:

  • 检查OneDrive的「文件按需同步」设置:这个功能有时候会干扰长路径下的文件读写,右键任务栏的OneDrive图标→设置→账户→选择文件夹,尝试关闭「文件按需同步」,或者调整为「始终保留在此设备上」,重启OneDrive后再测试。
  • 使用绝对路径+OneDrive别名:不要用相对路径,试试用Windows提供的OneDrive简化路径,比如%USERPROFILE%\OneDrive - UniversityX...,在Python里可以用os.path.expandvars()来解析环境变量,代码改成类似这样:
    import os
    file_path = os.path.expandvars("%USERPROFILE%\OneDrive - UniversityX XXXXXXXXXX XXXXXXXX\XXXXXXXXX\dataset.csv")
    with open(file_path, "w") as f:
        f.write(data)
    
  • 确认文件夹权限:右键目标OneDrive文件夹→属性→安全选项卡,检查当前登录用户是否拥有「写入」权限,如果没有,点击「编辑」添加写入权限,应用后再尝试保存文件。
  • 迁移OneDrive到更短的路径:从根源上解决长路径问题,右键OneDrive图标→设置→账户→「取消链接此PC」,然后重新链接时选择一个更短的本地路径(比如C:\OneDrive),注意迁移前做好文件备份。
  • 检查组策略的长路径设置:仅修改注册表可能不够,按下Win+R输入gpedit.msc,依次导航到「计算机配置→管理模板→系统→文件系统→启用 Win32 长路径」,确保这个选项设置为「已启用」,之后重启电脑生效。

备注:内容来源于stack exchange,提问作者Coolgolf

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.15 11:02:58