Skip to content

Commit e10f624

Browse files
committed
BaiduPCSApi.list support recursive option to iterate a directory.
1 parent 28390ef commit e10f624

1 file changed

Lines changed: 10 additions & 1 deletion

File tree

baidupcs_py/baidupcs/api.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,13 +112,22 @@ def list(
112112
name: bool = False,
113113
time: bool = False,
114114
size: bool = False,
115+
recursive: bool = False,
115116
) -> List[PcsFile]:
116117
"""List directory contents"""
117118

118119
info = self._baidupcs.list(
119120
remotepath, desc=desc, name=name, time=time, size=size
120121
)
121-
return [PcsFile.from_(v) for v in info.get("list", [])]
122+
pcs_files = [PcsFile.from_(v) for v in info.get("list", [])]
123+
if recursive:
124+
for pcs_file in pcs_files:
125+
if pcs_file.is_dir:
126+
sub_pcs_files = self.list(
127+
pcs_file.path, desc=desc, name=name, time=time, size=size
128+
)
129+
pcs_files.extend(sub_pcs_files)
130+
return pcs_files
122131

123132
def upload_file(
124133
self,

0 commit comments

Comments
 (0)