Verwaiste Dateien

Ich habe eine DB, die mir Probleme bereitet.

Bei Anwendung von “Reparieren und Optimieren” werden mir ca. 400 Fehler angezeigt, die ich dann repariere. Das Ganze wird mit “Reparatur fehlgeschlagen, 400 Fehler übrig” beendet. Die verwaisten Dateien finde ich über das Protokoll, aber 400 vereiste Dateien manuell herauszusuchen, ist ein bisschen arg mühsam.

Letztendlich habe ich die DB neu aufgebaut, leider mit dem Ergebnis, dass die 400 Fehler bestehen bleiben.

Was habe ich nun noch für Möglichkeiten?

Handelt es sich um indizierte Dateien?

Sind alles importierte Dateien

Dieses Skript legt alle Dokumente mit fehlender Datei in den Papierkorb:


-- Trash Missing Files

tell application id "DNtp"
	set theDatabase to current database
	set theContents to contents of theDatabase
	show progress indicator "Checking..." steps (count of theContents)
	try
		repeat with theRecord in theContents
			set thePath to path of theRecord
			if thePath is not missing value and length of thePath > 0 then
				try
					set pathExists to false
					tell application "Finder" to if exists thePath as POSIX file then set pathExists to true
					if not pathExists then move record theRecord to trash group of theDatabase
				end try
			end if
			step progress indicator (name of theRecord) as string
		end repeat
	end try
	hide progress indicator
end tell

Das Problem trat auf, nachdem ich in die Datenbank eine größere Menge an Dokumenten importiert hatte. da muss irgendwas durcheinander gekommen sein.

Ich habe das Problem jetzt auf "rustikale"Art gelöst. Glücklicherweise hatte ich an der Betroffenen DB nicht viel geändert, so dass ich im TM-Backup nach dem zuletzt funktionierenden Backup suchen konnte.

Zu Ihrem Script: Das ist ja ganz gut und schön, aber die Dokumente selbst scheinen ja (aus was für Gründen auch immer) verloren gegangen zu sein. Insofern holt das Skript die Dokumente auch nicht zurück, sondern löscht lediglich die defekten Einträge aus der DB