文件修改日期怎么改到以前(图文)
可以将文件修改日期改到以前的任何日期,以下是不同系统和方法的详细说明:
Windows 系统
使用 PowerShell(推荐)
powershell
# 将文件修改日期改到过去的某个日期 (Get-Item "C:\path\to\your\file.txt").LastWriteTime = "2020-01-01 10:30:00" # 同时修改访问时间和修改时间到过去 $file = Get-Item "C:\path\to\your\file.txt" $pastDate = "2019-12-25 14:30:00" $file.LastAccessTime = $pastDate $file.LastWriteTime = $pastDate # 修改创建时间到过去(注意:某些情况下可能不生效) $file.CreationTime = "2019-06-01 09:00:00"批量修改多个文件到过去的日期
powershell
# 修改当前目录下所有文件的修改时间到过去 Get-ChildItem "*.txt" | ForEach-Object { $_.LastWriteTime = "2020-06-15 12:00:00" } # 修改指定目录下所有文件到过去的日期 Get-ChildItem "C:\Documents\*" | ForEach-Object { $_.LastWriteTime = "2021-01-01 09:00:00" }使用命令提示符
cmd
# 这个方法只能更新到当前时间,不能设置到过去 copy "filename.txt"+,, /bLinux/Unix/macOS 系统
使用 touch 命令
bash
# 将文件修改时间改到过去的日期 touch -d "2020-01-01 10:30:00" filename.txt # 使用不同的过去日期格式 touch -d "Jan 1 2020 10:30:00" filename.txt touch -d "1 year ago" filename.txt touch -d "2 weeks ago" filename.txt # 使用 MMDDhhmmYYYY 格式设置过去的日期 touch -t 010110302020 filename.txt # 2020年1月1日10点30分 # 只修改修改时间到过去 touch -m -d "2019-12-25 14:30:00" filename.txt # 只修改访问时间到过去 touch -a -d "2019-06-01 09:00:00" filename.txt编程语言实现
Python 脚本
python
import os import time from datetime import datetime def set_file_to_past_date(file_path, past_date_str): """ 将文件的修改时间设置到过去的某个日期 :param file_path: 文件路径 :param past_date_str: 过去的日期字符串,如 "2020-01-01 10:30:00" """ try: # 检查文件是否存在 if not os.path.exists(file_path): print(f"文件不存在: {file_path}") return False # 将日期字符串转换为时间戳 past_datetime = datetime.strptime(past_date_str, "%Y-%m-%d %H:%M:%S") past_timestamp = time.mktime(past_datetime.timetuple()) # 设置文件的访问时间和修改时间 os.utime(file_path, (past_timestamp, past_timestamp)) print(f"成功将文件修改时间设置到过去:") print(f"文件: {file_path}") print(f"新时间: {past_date_str}") return True except Exception as e: print(f"设置失败: {e}") return False # 使用示例 - 将文件时间设置到几年前 set_file_to_past_date("example.txt", "2018-06-15 14:30:00")Java 实现
java
import java.io.File; import java.nio.file.Files; import java.nio.file.attribute.FileTime; import java.time.LocalDateTime; import java.time.ZoneId; public class PastFileTimeSetter { public static boolean setFileToPastDate(String filePath, String pastDateString) { try { File file = new File(filePath); if (!file.exists()) { System.out.println("文件不存在: " + filePath); return false; } // 解析过去的日期时间 LocalDateTime pastDateTime = LocalDateTime.parse(pastDateString.replace(" ", "T")); FileTime pastFileTime = FileTime.from(pastDateTime.atZone(ZoneId.systemDefault()).toInstant()); // 设置文件的最后修改时间 Files.setLastModifiedTime(file.toPath(), pastFileTime); System.out.println("成功将文件修改时间设置到过去:"); System.out.println("文件: " + filePath); System.out.println("新时间: " + pastDateString); return true; } catch (Exception e) { System.err.println("设置失败: " + e.getMessage()); return false; } } public static void main(String[] args) { setFileToPastDate("example.txt", "2019-12-25 10:30:00"); } }批量操作示例
PowerShell 批量修改
powershell
# 将多个文件的时间都设置到同一天 $files = @("file1.txt", "file2.txt", "document.docx", "image.jpg") $pastDate = "2020-03-15 11:00:00" foreach ($file in $files) { if (Test-Path $file) { (Get-Item $file).LastWriteTime = $pastDate Write-Host "已修改: $file" } else { Write-Host "文件不存在: $file" } } # 将整个文件夹的文件都设置到过去 Get-ChildItem "C:\MyFolder" -File | ForEach-Object { $_.LastWriteTime = "2021-01-01 09:00:00" }验证修改结果
Windows PowerShell 验证
powershell
# 查看文件的当前时间属性 Get-Item "filename.txt" | Select-Object Name, CreationTime, LastAccessTime, LastWriteTimeLinux/macOS 验证
bash
# 查看文件的时间信息 stat filename.txt # 或者 ls -l filename.txt注意事项
- 权限要求:需要对文件有写入权限才能修改时间属性
- 合理日期:虽然可以设置到很早以前,但建议设置合理的日期
- 文件系统限制:某些文件系统可能对时间范围有限制
- 时区考虑:注意本地时区对时间的影响
- 备份重要文件:对重要文件操作前建议先备份
- 批量操作谨慎:批量修改时先在测试文件上验证

更新时间:2025-12-18 13:39:58
