我的知识记录

如何更改文件时间和日期 怎么把文件的修改时间改了 如何修改文件创建时间

Windows 系统修改方法

使用 PowerShell 修改各种时间属性:


 
powershell
# 修改文件的修改时间(最后写入时间) (Get-Item "C:\path\to\file.txt").LastWriteTime = "2024-01-01 12:00:00" # 修改文件的访问时间 (Get-Item "C:\path\to\file.txt").LastAccessTime = "2024-01-01 12:00:00" # 修改文件的创建时间(需要管理员权限) (Get-Item "C:\path\to\file.txt").CreationTime = "2024-01-01 12:00:00"

批量修改多个文件:


 
powershell
# 修改文件夹中所有文件的修改时间 Get-ChildItem "C:\path\to\folder" -File | ForEach-Object { $_.LastWriteTime = "2024-01-01 12:00:00" } # 递归修改包括子文件夹中的所有文件 Get-ChildItem "C:\path\to\folder" -Recurse -File | ForEach-Object { $_.LastWriteTime = "2024-01-01 12:00:00" }

Linux/macOS 系统修改方法

使用 touch 命令:


 
bash
# 修改文件的修改时间 touch -m -t 202401011200 filename.txt # 修改文件的访问时间 touch -a -t 202401011200 filename.txt # 同时修改访问时间和修改时间 touch -t 202401011200 filename.txt

使用 stat 和 touch 组合查看和修改:


 
bash
# 查看当前文件时间 stat filename.txt # 修改时间为指定时间 touch -d "2024-01-01 12:00:00" filename.txt

编程方式修改

Python 方法:


 
python
import os import time from datetime import datetime def change_file_times(filepath, mod_time=None, access_time=None, create_time=None): """ 修改文件的各种时间属性 :param filepath: 文件路径 :param mod_time: 修改时间 :param access_time: 访问时间 :param create_time: 创建时间(部分系统支持) """ # 获取当前时间戳作为默认值 current_atime, current_mtime = os.stat(filepath).st_atime, os.stat(filepath).st_mtime # 设置新的时间戳 atime = time.mktime(access_time.timetuple()) if access_time else current_atime mtime = time.mktime(mod_time.timetuple()) if mod_time else current_mtime # 修改访问时间和修改时间 os.utime(filepath, (atime, mtime)) # 使用示例 mod_time = datetime(2024, 1, 1, 12, 0, 0) access_time = datetime(2024, 1, 1, 10, 0, 0) change_file_times("myfile.txt", mod_time=mod_time, access_time=access_time)

特别说明:修改文件创建时间

Windows 系统:


 
powershell
# PowerShell 中修改创建时间(需要管理员权限) (Get-Item "C:\path\to\file.txt").CreationTime = "2024-01-01 12:00:00"

Linux 系统注意事项:

Linux 系统通常不跟踪文件的创建时间(birth time),大多数文件系统不支持修改创建时间。

macOS 系统:


 
bash
# macOS 可以使用 SetFile 工具(需要安装 Xcode Command Line Tools) SetFile -d "01/01/2024 12:00:00" filename.txt

实用脚本示例

Windows 批处理脚本:


 
batch
@echo off set "filepath=C:\path\to\file.txt" powershell "$((Get-Item '%filepath%')).LastWriteTime = '2024-01-01 12:00:00'" echo 文件修改时间已更新 pause

完整的 Python 脚本:


 
python
#!/usr/bin/env python3 import os import sys import time from datetime import datetime def modify_file_times(file_path, date_str): """修改文件的所有时间属性为指定日期""" try: # 解析日期字符串 target_time = datetime.strptime(date_str, "%Y-%m-%d %H:%M:%S") timestamp = time.mktime(target_time.timetuple()) # 修改文件时间 os.utime(file_path, (timestamp, timestamp)) print(f"成功将 {file_path} 的时间修改为 {date_str}") except Exception as e: print(f"修改失败: {e}") if __name__ == "__main__": if len(sys.argv) != 3: print("使用方法: python script.py <文件路径> <日期时间>") print("例如: python script.py myfile.txt \"2024-01-01 12:00:00\"") sys.exit(1) file_path = sys.argv[1] date_str = sys.argv[2] modify_file_times(file_path, date_str)

注意事项

  1. 权限要求:修改系统文件需要管理员权限
  2. 时间格式:确保使用正确的日期时间格式
  3. 系统差异:不同操作系统对时间属性的支持程度不同
  4. 创建时间限制:创建时间最难修改,某些系统根本不允许修改
  5. 备份建议:在批量修改前建议先备份重要文件

如何更改文件时间和日期 怎么把文件的修改时间改了 如何修改文件创建时间

标签:

更新时间:2025-12-13 16:08:42

上一篇:如何修改文件的修改时间和日期 如何更改文件的修改时间和日期

下一篇:修改文件修改日期的方法 文件访问时间可以修改吗