使用os.walk时,如何绕过窗口的最大路径长度限制?

时间:2013-10-30 00:09:46

标签: windows python-2.7

我正在Windows上运行一个python程序,它将os.walk一个linux文件系统安装在我的窗口上,为QTreeView创建一个树模型。似乎当文件夹的路径超过260个字符长度时,它将被视为文件而不是目录,因此,os.walk将停止进入此目录。如何绕过Window的最大路径长度限制?

2 个答案:

答案 0 :(得分:1)

Subst是解决这个问题的一种方法。

为路径C:\ User \ Betty \ Really \ Really \ Long \ Path创建虚拟驱动器V,输入:

subst v: C:\User\Betty\Really\Really\Long\Path

答案 1 :(得分:1)

我发现即使路径超过260个字符,QtCore.QDir模块也能正常工作。所以我编写了自己的os.walk函数版本,类似于以下内容:

import os
from PyQt4 import QtCore

def myWalk(root_path):
    dir_info = QtCore.QDir(root_path)
    dirs = dir_info.entryList(filters=(QtCore.QDir.Dirs | QtCore.QDir.NoDotAndDotDot))
    files = dir_info.entryList(filters=(QtCore.QDir.Files | QtCore.QDir.NoDotAndDotDot))
    for i in dirs:
        myWalk(os.path.join(root_path, i))