scanner.py 文件源码

python
阅读 40 收藏 0 点赞 0 评论 0

项目:dirtools3 作者: kirpit 项目源码 文件源码
def _insert_sorted(self, item: os.DirEntry, sort_by: SortBy) -> None:
        """Internal method to insert every scanned item into the local `_items`
        list on-the-fly by the given `sort_by` parameter.

        :param item: DirEntry object from `_iter_items()` async iteration
                within the async parallel scanning.
        :type item: posix.DirEntry
        :param sort_by: SortBy enum attribute
        :type sort_by: SortBy
        :rtype: None
        """
        attrs = self._get_attributes(item)

        # It is an empty folder, grab folder timestamps
        if attrs['atime'] == 0 and attrs['mtime'] == 0 and attrs['ctime'] == 0:
            stat = item.stat(follow_symlinks=False)
            attrs['atime'] = int(stat.st_atime)
            attrs['mtime'] = int(stat.st_mtime)
            attrs['ctime'] = int(stat.st_ctime)

        summary = {'name': os.path.relpath(item.path, self._root),
                   'size': attrs['size'],
                   'depth': attrs['depth'],
                   'num_of_files': attrs['num_of_files'],
                   'atime': attrs['atime'],
                   'mtime': attrs['mtime'],
                   'ctime': attrs['ctime']}

        index = self._find_index(summary, sort_by)
        self._total_size += summary['size']
        self._items_len += 1
        self._items.insert(index, summary)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号