文件夹怎么修改日期和时间(图文)
修改文件夹的日期和时间有多种方法,以下是不同操作系统下的详细操作指南:
Windows 系统
方法一:使用 PowerShell(推荐)
修改单个文件夹的修改时间
powershell
# 修改文件夹的最后修改时间 $folder = Get-Item "C:\path\to\your\folder" $folder.LastWriteTime = "2023-09-20 15:30:00" # 修改文件夹的创建时间 $folder.CreationTime = "2023-09-20 15:30:00" # 修改文件夹的最后访问时间 $folder.LastAccessTime = "2023-09-20 15:30:00"批量修改多个文件夹的时间
powershell
# 修改指定目录下所有子文件夹的时间 Get-ChildItem "C:\path\to\parent\folder" -Directory | ForEach-Object { $_.LastWriteTime = "2023-09-20 15:30:00" $_.CreationTime = "2023-09-20 15:30:00" }递归修改文件夹树的时间
powershell
# 递归修改文件夹及其所有子文件夹的时间 Get-ChildItem "C:\path\to\folder" -Recurse -Directory | ForEach-Object { $_.LastWriteTime = "2023-09-20 15:30:00" }方法二:使用 CMD 命令
cmd
# 通过 PowerShell 命令修改 powershell "Get-Item 'foldername' | %%{$_.LastWriteTime = '2023-09-20 15:30:00'}"macOS 系统
使用 Terminal 终端
bash
# 修改文件夹的修改时间 touch -d "2023-09-20 15:30:00" /path/to/folder # 修改文件夹的访问时间 touch -a -d "2023-09-20 15:30:00" /path/to/folder # 修改文件夹的修改时间 touch -m -d "2023-09-20 15:30:00" /path/to/folderLinux 系统
使用 Bash 命令
bash
# 修改文件夹的时间戳 touch -d "2023-09-20 15:30:00" /path/to/folder # 分别修改访问时间和修改时间 touch -a -d "2023-09-20 15:30:00" /path/to/folder # 访问时间 touch -m -d "2023-09-20 15:30:00" /path/to/folder # 修改时间编程方式实现
Python 脚本
基础版本
python
import os import time from datetime import datetime from pathlib import Path def change_folder_dates(folder_path, new_date_string): """ 修改文件夹的日期和时间 :param folder_path: 文件夹路径 :param new_date_string: 新的日期时间字符串,如 "2023-09-20 15:30:00" """ folder = Path(folder_path) if not folder.exists(): print(f"错误: 文件夹不存在 - {folder_path}") return # 解析日期时间 try: new_datetime = datetime.strptime(new_date_string, "%Y-%m-%d %H:%M:%S") timestamp = time.mktime(new_datetime.timetuple()) except ValueError: print("错误: 日期格式不正确,请使用 'YYYY-MM-DD HH:MM:SS' 格式") return # 修改文件夹时间戳 try: os.utime(str(folder), (timestamp, timestamp)) print(f"✓ 已成功修改文件夹时间: {folder_path}") print(f" 新的修改时间: {new_datetime}") except Exception as e: print(f"✗ 修改失败: {e}") # 使用示例 change_folder_dates("./my_folder", "2023-09-20 15:30:00")高级版本(支持递归和批量操作)
python
import os import time from datetime import datetime from pathlib import Path class FolderDateModifier: def __init__(self, folder_path): self.folder_path = Path(folder_path) if not self.folder_path.exists(): raise FileNotFoundError(f"文件夹不存在: {folder_path}") def modify_dates(self, new_date_string, recursive=False, dry_run=False): """ 修改文件夹的日期和时间 :param new_date_string: 新的日期时间字符串 :param recursive: 是否递归修改子文件夹 :param dry_run: 是否只预览不实际修改 """ # 解析日期时间 try: new_datetime = datetime.strptime(new_date_string, "%Y-%m-%d %H:%M:%S") timestamp = time.mktime(new_datetime.timetuple()) except ValueError: print("错误: 日期格式不正确,请使用 'YYYY-MM-DD HH:MM:SS' 格式") return folders_to_modify = [self.folder_path] # 如果递归,添加所有子文件夹 if recursive: folders_to_modify.extend(list(self.folder_path.rglob("*"))) folders_to_modify = [f for f in folders_to_modify if f.is_dir()] print(f"找到 {len(folders_to_modify)} 个文件夹") if dry_run: print("【预览模式】以下文件夹将被修改:") for folder in folders_to_modify: print(f" {folder}") return # 确认操作 if len(folders_to_modify) > 1: confirm = input(f"确认修改这 {len(folders_to_modify)} 个文件夹的时间吗? (y/N): ") if confirm.lower() != 'y': print("操作已取消") return # 执行修改 modified_count = 0 for folder in folders_to_modify: try: os.utime(str(folder), (timestamp, timestamp)) relative_path = folder.relative_to(self.folder_path.parent) print(f"✓ 已修改: {relative_path}") modified_count += 1 except Exception as e: print(f"✗ 修改失败 {folder}: {e}") print(f"共修改了 {modified_count} 个文件夹") def get_current_dates(self): """获取当前文件夹的时间信息""" stat_info = self.folder_path.stat() access_time = datetime.fromtimestamp(stat_info.st_atime) modify_time = datetime.fromtimestamp(stat_info.st_mtime) print(f"文件夹: {self.folder_path}") print(f"最后访问时间: {access_time}") print(f"最后修改时间: {modify_time}") # Windows 和 macOS 可能支持创建时间 try: import platform if platform.system() == "Windows": creation_time = datetime.fromtimestamp(stat_info.st_ctime) print(f"创建时间: {creation_time}") except: pass # 使用示例 modifier = FolderDateModifier("./projects") # 查看当前时间 modifier.get_current_dates() # 修改单个文件夹时间 modifier.modify_dates("2023-09-20 15:30:00") # 递归修改所有子文件夹时间 modifier.modify_dates("2023-09-20 15:30:00", recursive=True, dry_run=True)批量修改多个文件夹
Windows PowerShell 批量操作
powershell
# 修改多个指定文件夹的时间 $folders = @("C:\Project1", "C:\Project2", "C:\Project3") foreach ($folder in $folders) { if (Test-Path $folder) { $item = Get-Item $folder $item.LastWriteTime = "2023-09-20 15:30:00" Write-Host "已修改: $folder" } } # 根据条件筛选并修改文件夹时间 Get-ChildItem "C:\Projects" -Directory | Where-Object {$_.Name -like "Project*"} | ForEach-Object { $_.LastWriteTime = "2023-09-20 15:30:00" Write-Host "已修改: $($_.Name)" }Python 批量操作
python
def batch_modify_folder_dates(folder_list, new_date_string): """ 批量修改多个文件夹的日期时间 :param folder_list: 文件夹路径列表 :param new_date_string: 新的日期时间字符串 """ try: new_datetime = datetime.strptime(new_date_string, "%Y-%m-%d %H:%M:%S") timestamp = time.mktime(new_datetime.timetuple()) except ValueError: print("错误: 日期格式不正确") return successful = 0 failed = 0 for folder_path in folder_list: try: if os.path.exists(folder_path): os.utime(folder_path, (timestamp, timestamp)) print(f"✓ 已修改: {folder_path}") successful += 1 else: print(f"✗ 文件夹不存在: {folder_path}") failed += 1 except Exception as e: print(f"✗ 修改失败 {folder_path}: {e}") failed += 1 print(f"\n批量修改完成: 成功 {successful} 个,失败 {failed} 个") # 使用示例 folders = [ "./project_alpha", "./project_beta", "./project_gamma" ] batch_modify_folder_dates(folders, "2023-09-20 15:30:00")第三方工具推荐
Windows 工具
- Attribute Changer - 图形化界面工具,操作简单
- Folder Date Change - 专门用于修改文件夹时间的工具
- BulkFileChanger - 批量文件属性修改工具
跨平台工具
- Total Commander - 功能强大的文件管理器
- FreeCommander - 免费文件管理工具
验证修改结果
Windows 验证方法
powershell
# 查看文件夹详细时间信息 Get-Item "foldername" | Format-List Name, CreationTime, LastWriteTime, LastAccessTime # 按修改时间排序查看文件夹 Get-ChildItem | Where-Object {$_.PSIsContainer} | Sort-Object LastWriteTimemacOS/Linux 验证方法
bash
# 查看文件夹时间信息 stat foldername # 使用 ls 命令查看 ls -ld foldername # 按修改时间排序 ls -lt | grep "^d"实际应用场景
场景1:项目归档
powershell
# Windows: 将已完成项目的文件夹时间设为归档时间 Get-ChildItem "C:\Projects\Completed" -Directory | ForEach-Object { $_.LastWriteTime = "2023-12-31 23:59:59" Write-Host "已归档项目: $($_.Name)" }场景2:数据迁移后的时间同步
python
def sync_folder_times_after_migration(original_folders, migrated_folders, reference_time): """ 数据迁移后同步文件夹时间 """ for orig, migrated in zip(original_folders, migrated_folders): if os.path.exists(orig) and os.path.exists(migrated): # 获取原始文件夹的修改时间 orig_stat = os.stat(orig) orig_mtime = orig_stat.st_mtime # 应用到迁移后的文件夹 os.utime(migrated, (orig_mtime, orig_mtime)) print(f"已同步时间: {migrated}")注意事项
- 权限要求:确保对目标文件夹有写入权限
- 系统差异:
- Windows 支持修改创建时间、修改时间和访问时间
- macOS 支持修改创建时间
- Linux 通常只能修改访问时间和修改时间
- 时间格式:严格按照指定格式输入日期时间
- 递归操作:递归修改时要特别小心,避免误操作
- 备份建议:修改重要文件夹前建议记录原始时间
- 预览模式:建议先使用预览模式确认要修改的文件夹
- 确认机制:批量操作时添加用户确认步骤
- 特殊文件夹:系统保护的文件夹可能需要管理员权限

更新时间:2025-12-17 12:49:30
下一篇:怎么把日期变成纯文本(图文)
