前段时间有个修改文件创建时间的需求,找了挺多插件,要不就是收费,要不就是没修改成功,然后就直接python !启动! 顺便也把修改时间和访问时间做了修改,以下是源码,还是很简单的,个人比较懒{:1_896:} 还没封装成exe的GUI,各位大佬有需要可以自行封装一下。
# -*- coding:utf-8 -*-
import datetime
import os
import win32file
import pywintypes
def time_to_time_stamp(org_time) -> float:
change_timestamp = org_time.timestamp()
return change_timestamp
def change_file_create_dates(filepath: str, visit_date: datetime.datetime):
# 修改文件的创建日期
handle = win32file.CreateFile(filepath, win32file.GENERIC_WRITE, 0, None, win32file.OPEN_EXISTING,
win32file.FILE_ATTRIBUTE_NORMAL, None)
win32file.SetFileTime(handle, pywintypes.Time(visit_date))
def change_file_modified_dates(filepath: str, date_timestamp: float):
# 修改文件的访问日期
os.utime(filepath, (date_timestamp, os.path.getatime(filepath)))
def change_file_visit_dates(filepath, date_timestamp):
# 修改文件的修改日期
os.utime(filepath, (os.path.getatime(filepath), date_timestamp))
# 示例用法
file_path = r'C:\Users\xxx\Desktop\测试文档.docx'
creation_date = datetime.datetime(2023, 3, 15, 9, 10, 12, 99811) # 设置新的创建日期 年 月 日 时 分 秒 微秒
modified_timestamp = time_to_time_stamp(datetime.datetime(2023, 3, 15, 10, 20, 53, 565720)) # 设置新的修改日期
visit_timestamp = time_to_time_stamp(datetime.datetime(2023, 3, 15, 10, 25, 36, 56520)) # 设置新的访问日期
if __name__ == '__main__':
# 修改文件创建时间
change_file_create_dates(file_path, creation_date)
# 修改文件修改时间
change_file_modified_dates(file_path, modified_timestamp)
# 修改文件访问时间
change_file_visit_dates(file_path, visit_timestamp)
修改前的文件相关时间
修改后的文件相关时间
|