Description
Bug report
Bug description:
In 3.12 on Windows, calling stat() on a direntry returned from os.scandir() always returns an st_ctime of 0:
import os
for direntry in os.scandir('.'):
st = direntry.stat()
print(st.st_ctime)
In 3.10, this gave reasonable timestamps. In 3.12, it's always 0. This only affects os.scandir, not os.stat. I'm guessing it's related to this (https://docs.python.org/3/whatsnew/3.12.html#deprecated):
"The st_ctime fields return by os.stat() and os.lstat() on Windows are deprecated. In a future release, they will contain the last metadata change time, consistent with other platforms. For now, they still contain the creation time, which is also available in the new st_birthtime field. (Contributed by Steve Dower in gh-99726.)"
The os.stat results are as described, but maybe direntry.stat() was overlooked. I think it should also give st_ctime = st_birthtime for the compatibility period, like os.stat() is doing, not 0.
CPython versions tested on:
3.12
Operating systems tested on:
Windows