kopia lustrzana https://github.com/micropython/micropython-lib
os: Use uos.ilistdir() if available.
rodzic
217bb5fd33
commit
69ab21b6fc
|
@ -106,21 +106,24 @@ def makedirs(name, mode=0o777, exist_ok=False):
|
||||||
if e.args[0] != errno_.EEXIST:
|
if e.args[0] != errno_.EEXIST:
|
||||||
raise
|
raise
|
||||||
|
|
||||||
def ilistdir(path="."):
|
if hasattr(uos, "ilistdir"):
|
||||||
dir = opendir_(path)
|
ilistdir = uos.ilistdir
|
||||||
if not dir:
|
else:
|
||||||
raise_error()
|
def ilistdir(path="."):
|
||||||
res = []
|
dir = opendir_(path)
|
||||||
dirent_fmt = "LLHB256s"
|
if not dir:
|
||||||
while True:
|
raise_error()
|
||||||
dirent = readdir_(dir)
|
res = []
|
||||||
if not dirent:
|
dirent_fmt = "LLHB256s"
|
||||||
break
|
while True:
|
||||||
import uctypes
|
dirent = readdir_(dir)
|
||||||
dirent = uctypes.bytes_at(dirent, struct.calcsize(dirent_fmt))
|
if not dirent:
|
||||||
dirent = struct.unpack(dirent_fmt, dirent)
|
break
|
||||||
dirent = (dirent[-1].split(b'\0', 1)[0], dirent[-2], dirent[0])
|
import uctypes
|
||||||
yield dirent
|
dirent = uctypes.bytes_at(dirent, struct.calcsize(dirent_fmt))
|
||||||
|
dirent = struct.unpack(dirent_fmt, dirent)
|
||||||
|
dirent = (dirent[-1].split(b'\0', 1)[0], dirent[-2], dirent[0])
|
||||||
|
yield dirent
|
||||||
|
|
||||||
def listdir(path="."):
|
def listdir(path="."):
|
||||||
is_str = type(path) is not bytes
|
is_str = type(path) is not bytes
|
||||||
|
|
Ładowanie…
Reference in New Issue