前言
源于检索文件夹内部信息的需要,想在网上查找一下:有无现成的、针对性获取文件夹修改时间的程序,发现寥寥无几。
刚开始设想的方法(选出到内部文件的最新时间,即是文件夹最后修改时间)即刻被否决了。——因为如果最后修改的文件被删除(或被移出),就会干扰结果。
多次检索无果后,忽然想到:自己平时是从哪里了解到文件夹修改时间的,那就去哪里获取嘛。
(本文仅供记录,后面发现os库也可以实现——在【更优解】中已提及)
一、原始方法(通过终端命令实现)
1、实现依据
平常,我们要想了解文件夹的时间信息,往往是以下几种方法:
-
在文件资源管理器中,在“详细信息”的查看模式下,能够直接查看到(最后一次)修改时间。
-
鼠标右击文件夹,选择属性,查看时间(即创建时间)
-
借助命令行工具cmd的dir命令,获取所指向文件夹的下一级文件、文件夹相关信息(第一列即修改时间)。
本文的实现,即是依据最后一种方法,以Python调用cmd执行命令,获取文件夹修改时间。
2、一个小细节
尽管以Python调用cmd执行命令,可以获取文件夹修改时间,但事实上还需要考虑到“隐藏文件”这一因素。
因为Python中的一些库(如:os库)可能可以发现隐藏文件,而仅使用单一的dir命令,只能查看到可见文件。如果不知道这些而一起使用,程序可能埋下问题。
本文即采用“dir $path /a”形式命令,将可见文件(夹)、隐藏文件(夹)一同获取。
链接: 怎样用DOS命令查看隐藏文件?-百度知道
3、代码实现
可通过修改is_single,选择以下其中一种结果:
- 获取某一文件夹自身的修改时间
- 批量获取某一路径下,所有文件夹修改时间
#! /usr/bin/env python3
# -*- coding: UTF-8 -*-
import os
def getDirList(dir_path: str) ->