获取当前目录中所有子目录的列表,并忽略没有读取权限的目录

问题描述

我需要一个列出我存储中所有目录的程序。我在Android上将代码作为kivy apk运行,因此我无法更改代码的权限。 我已经尝试过:

dir = [x[0] for x in os.walk("/storage/")]

但是每次我尝试列出目录时,我的apk都具有android权限WRITE_EXTERNAL_STORAGE和READ_EXTERNAL_STORAGE,但我不允许阅读它只是停止并且不列出其他目录。

编辑: 我现在用

file_dir = [os.path.join(root,file) for root,dir,files in os.walk("/storage/") for file in files if os.path.splitext(file)[1].lower() in ('.jpg','.jpeg','.mp4')]

跳过所有我无法访问的文件夹,但是很显然我的存储中的文件夹损坏了。有没有办法跳过我无法读取的文件夹?

解决方法

以下代码跳过了您无法访问的文件

 abs_file_paths=[os.path.join(root,file) for root,dir,files in os.walk(dir_to_extract) for file in files]
,

您可以使用listdir:

malloc()

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...