tips in windows/ 1.windows文件路径最长限制

1.windows文件路径最长限制

  • 场景:在用文件资源管理器删除名称超过255字符的文件(文件名最大字符限制就是255)时,发现删除不了,也没反应

  • 原因:windows删除调用的是explorer,对路径限制不能超过260,此时超过了,但又由于是应用层,所以不会直接给以报错。使用杀毒软件可以是因为他们调用的是内核层的接口,对限制更宽。

  • 解决方案:

    1. 通过注册表,修改路径最长限制,但不推荐,因为有一些老软件调用的就是windef.h的接口,里面对最大限制是260,老软件预想文件路径是不会超过260字符,所以没有对路径超过260字符的情况做限制处理,可能会出现bug。

    2. 可以通过新的api来解决,但是老的软件就不适用了

      在这里插入图片描述

  • 实例:

    1. Python 可以处理超过 260 个字符的长路径,但它并不是通过修改注册表或改变系统设置来实现的。相反,Python 使用了一种特定的方法来处理长路径。

      • a. 使用 “长路径前缀”(Long Path Prefix)

        在 Windows 上,Python 使用一个特殊的长路径前缀 \\?\ 来支持超过 MAX_PATH(260 个字符)的路径长度。这个前缀告诉 Windows API 不要限制路径长度,这样就可以处理更长的路径。

        例如,如果你有一个很长的文件路径,Python 会在路径前面加上 \\?\ 前缀,如下所示:

        long_path = r"\\?\C:\some\very\long\path\to\file.txt"
        
      • 利用 Python 内部的文件系统接口

        Python 内部的文件系统接口(例如 osos.path 模块中的函数)在操作路径时考虑到了长路径的处理。Python 的文件操作函数能够识别和使用长路径前缀,使得你可以操作超过 260 个字符的文件路径,而无需修改系统的全局设置。

  • 14
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值