怎么修改文件的修改日期(图文)
修改文件的修改日期有多种方法,以下是不同操作系统和场景下的操作方式:
1. Windows 系统
使用 PowerShell:
powershell
# 修改单个文件的修改时间 (Get-Item "C:\path\to\filename.txt").LastWriteTime = "2023-12-01 15:30:00" # 修改文件的创建时间 (Get-Item "C:\path\to\filename.txt").CreationTime = "2023-12-01 15:30:00" # 修改文件的访问时间 (Get-Item "C:\path\to\filename.txt").LastAccessTime = "2023-12-01 15:30:00" # 批量修改多个文件 Get-ChildItem "C:\path\to\folder\*.txt" | ForEach-Object { $_.LastWriteTime = "2023-12-01 15:30:00" }使用命令提示符(CMD):
cmd
# copy 命令可以更新文件的修改时间 copy /b filename.txt +,,2. Mac 和 Linux 系统
使用 touch 命令:
bash
# 修改文件的修改时间和访问时间 touch -d "2023-12-01 15:30:00" /path/to/filename.txt # 只修改修改时间 touch -m -d "2023-12-01 15:30:00" /path/to/filename.txt # 只修改访问时间 touch -a -d "2023-12-01 15:30:00" /path/to/filename.txt # 使用特定格式 touch -m -t 202312011530 /path/to/filename.txt批量修改:
bash
# 修改目录下所有 .txt 文件 find /path/to/folder -name "*.txt" -exec touch -m -d "2023-12-01 15:30:00" {} \; # 修改最近7天内修改过的文件 find /path/to/folder -type f -mtime -7 -exec touch -m -d "2023-12-01 15:30:00" {} \;3. 编程方式修改
Python 脚本:
python
import os from datetime import datetime def change_modification_time(file_path, new_datetime_str): """ 修改文件的修改时间 :param file_path: 文件路径 :param new_datetime_str: 新的时间字符串,格式 "YYYY-MM-DD HH:MM:SS" """ # 解析时间字符串 new_datetime = datetime.strptime(new_datetime_str, "%Y-%m-%d %H:%M:%S") timestamp = new_datetime.timestamp() # 获取当前访问时间 current_stat = os.stat(file_path) access_time = current_stat.st_atime # 修改文件时间戳 (访问时间不变,只修改修改时间) os.utime(file_path, (access_time, timestamp)) # 使用示例 change_modification_time("/path/to/filename.txt", "2023-12-01 15:30:00") # 批量修改 import glob for file_path in glob.glob("/path/to/folder/*.txt"): change_modification_time(file_path, "2023-12-01 15:30:00")JavaScript (Node.js):
javascript
const fs = require('fs'); function changeModificationTime(filePath, newDate) { // newDate 可以是 Date 对象或时间字符串 const date = new Date(newDate); fs.utimes(filePath, date, date, (err) => { if (err) { console.error('修改失败:', err); } else { console.log('文件修改时间已更新'); } }); } // 使用示例 changeModificationTime('/path/to/filename.txt', '2023-12-01T15:30:00');4. 使用第三方工具
常用工具推荐:
Windows:
- Attribute Changer:图形化界面工具,易于使用
- BulkFileChanger:NirSoft 出品的免费工具
- PowerShell 脚本:适合批量处理
Mac:
- A Better Finder Attributes:专业的文件属性修改工具
- Terminal 命令:使用上述 touch 命令
跨平台:
- ExifTool:特别适合处理图片和媒体文件的元数据
bash
# 使用 ExifTool 修改任意文件的修改时间 exiftool -FileModifyDate="2023:12:01 15:30:00" filename.txt5. 特殊文件类型处理
图片文件 (JPEG/PNG等):
bash
# 修改 EXIF 中的修改时间 exiftool -ModifyDate="2023:12:01 15:30:00" image.jpg exiftool -DateTimeOriginal="2023:12:01 15:30:00" image.jpgPDF 文件:
bash
# 使用 pdftk 修改 PDF 的元数据时间 pdftk input.pdf update_info_utf8 metadata.txt output output.pdf6. 高级技巧
创建带特定时间戳的新文件:
bash
# 先修改系统时间(谨慎使用) sudo date -s "2023-12-01 15:30:00" touch newfile.txt # 恢复系统时间 sudo ntpdate -s time.nist.gov使用 Python 更精细的控制:
python
import os import time from datetime import datetime def set_file_times(file_path, access_time=None, modify_time=None): """ 分别设置文件的访问时间和修改时间 """ current_stat = os.stat(file_path) # 如果未指定,则保持原时间 atime = access_time.timestamp() if access_time else current_stat.st_atime mtime = modify_time.timestamp() if modify_time else current_stat.st_mtime os.utime(file_path, (atime, mtime)) # 使用示例 access_dt = datetime(2023, 11, 30, 10, 0, 0) modify_dt = datetime(2023, 12, 1, 15, 30, 0) set_file_times("/path/to/file.txt", access_dt, modify_dt)注意事项
- 权限要求:修改系统文件需要管理员权限
- 时间格式:注意不同工具接受的时间格式可能不同
- 备份重要文件:修改前建议备份关键文件
- 同步问题:某些云同步服务可能会覆盖本地的时间修改
- 法律合规:在正式环境中修改文件时间应遵循相关规定

更新时间:2025-12-14 17:24:31
上一篇:怎么修改文件上传时间和地址
下一篇:批量修改文件的修改时间(图文)
