Ich hatte das gleiche Problem und wollte nicht mühselig jedes Bild einzeln bearbeiten.

Hab dann mit ChatGpt einen Phyton Code schreiben lassen, der für alle mir untergekommenden Dateitypen das Erstelldatum durch das Änderungsdatum ersetzt. Dafür im Code den Quellordner und Zielordner angeben.

import os

import shutil

from datetime import datetime

from pathlib import Path

import pywintypes

import win32file

import win32con

def set_creation_date(file_path, creation_time):

  wintime = pywintypes.Time(creation_time)

  handle = win32file.CreateFile(

    file_path, win32con.GENERIC_WRITE, 0, None, win32con.OPEN_EXISTING, 0, 0

  )

  win32file.SetFileTime(handle, wintime, None, None) # Ändert nur das Erstellungsdatum

  handle.close()

def format_datetime(dt):

  return dt.strftime("%Y%m%d_%H%M%S")

def process_files(source_folder, target_folder):

  # Liste der unterstützten Dateiformate basierend auf deiner Liste

  supported_formats = [

    '.3gp', '.aae', '.bkup', '.crypt12', '.db', '.dng', '.docx', '.flv', 

    '.gif', '.heic', '.ini', '.jpeg', '.jpg', '.mov', '.mp4', '.png', 

    '.txt', '.unknown', '.webp', '.xcf'

  ]

   

  for root, _, files in os.walk(source_folder):

    for filename in files:

      source_file = os.path.join(root, filename)

       

      # Prüfen, ob es sich um eine unterstützte Datei handelt

      if filename.lower().endswith(tuple(supported_formats)):

        # Änderungsdatum abrufen

        modified_time = os.path.getmtime(source_file)

        modified_date = datetime.fromtimestamp(modified_time)

         

        # Zielordner für die aktuelle Datei erstellen

        relative_path = os.path.relpath(root, source_folder)

        target_subfolder = os.path.join(target_folder, relative_path)

        Path(target_subfolder).mkdir(parents=True, exist_ok=True)

        # Datei kopieren

        target_file = os.path.join(target_subfolder, filename)

        shutil.copy2(source_file, target_file)

        # Erstellungsdatum in den Metadaten der neuen Datei setzen, außer bei .aae-Dateien

        if not filename.lower().endswith('.aae'):

          set_creation_date(target_file, modified_date)

        print(f"Copied: {source_file} to {target_file} with creation date {modified_date}")

# Beispielaufruf

source_folder = r"C:\Pfad\Quelle" # Ersetze dies mit deinem Quellordner

target_folder = r"C:\Pfad\Ziel"  # Ersetze dies mit deinem Zielordner

process_files(source_folder, target_folder)

...zur Antwort