ahstax
Goto Top

Ordner erstellen ohne thumbs.db

Hallo,

gibt es, mit vb.net, eine Möglichkeit, bei einem erstellten Ordner
System.IO.Directory.CreateDirectory(OrdnerName)
Einstellungen vorzunehmen, dass darin keine thumbs.db erzeugt wird (wenn darin Abbildungen erzeugt werden)? Wenn ja, welche?

Hintergrund:
Ich erzeuge ein Arbeitsverzeichnis für Abbildungen, bearbeite diese und möchte dann das Arbeitsverzeichnis samt Inhalt wieder löschen. Das geht aber nicht, da die thumbs.de immer als noch im Eingriff erkannt wird.
Zum Löschen verwendeter Code:
Dim Files As String()
Files = Directory.GetFiles(OrdnerName)
For Each File As String In Files
 SetAttr(File, vbNormal)  'Versuch, die versteckte Datei Thumbs.db durch sichtbar machen auch gefügig zu machen  
 System.IO.File.Delete(File)
Next

Neugierige Grüße,
Andreas

Content-Key: 237947

Url: https://administrator.de/contentid/237947

Printed on: April 26, 2024 at 14:04 o'clock

Member: colinardo
colinardo May 13, 2014 updated at 14:57:27 (UTC)
Goto Top
Hallo Andreas,
du solltest auf jedem Fall alle Referenzen zu Files welche du im Code in diesem Ordner referenziert hast releasen. Falls doch noch Referenzen zu Dateien offen sein sollten die ein Löschen des Ordners verhindern kannst du diese dann mit dem forcierten Auslösen der Garbage-Collection freigeben:
GC.Collect()
und dann den ganzen Ordner inkl. Unterordner (zweiter Parameter) löschen:
System.IO.Directory.Delete("C:\Deinpfad", True)
Grüße Uwe
Member: ahstax
ahstax May 14, 2014 at 07:05:06 (UTC)
Goto Top
Hallo Uwe,

vielen Dank für Deine Antwort! face-smile

Das Problem scheint zu sein, dass die Thumbs.db (unter Win7) automatisch erstellt wird, wenn in einen Ordner eine Abbildung abgelegt wird. Weiter wird die Thumbs.db wohl jedes mal geändert, wenn an einer der Abbildungen Änderungen vorgenommen werden oder gelöscht.


Die Zeile
System.IO.Directory.Delete("C:\Deinpfad", True)  
hatte ich schon ausprobiert, jetzt auch zusammen mit
GC.Collect()
Leider bleibt (vermutlich) die Thumbs.db "das Problem". (Die Referenzen zu den Dateien sind im Code "released").
Lässt sich noch irgendwie anders das Löschen der Thumbs.db forcieren (ggf mit vorheriger Freigabe des Zugriffs?)

Meine Idee war:
Es gibt unter Win7 die Möglichkeit, Ordnereinstellungen vorzunehmen, bsp zu unterbinden, dass Vorschauthumbnails erzeugt werden, wodurch auch keine Thumbs.db erzeugt wird. Diese Möglichkeit würde ich (sofern das irgendwie sinnvoll ist) gerne programmatisch mal ausprobieren. Geht das?

Neugierige Grüße
Andreas
Member: colinardo
colinardo May 14, 2014 updated at 12:09:01 (UTC)
Goto Top
Zitat von @ahstax:
Meine Idee war:
Es gibt unter Win7 die Möglichkeit, Ordnereinstellungen vorzunehmen, bsp zu unterbinden, dass Vorschauthumbnails erzeugt werden, wodurch auch keine Thumbs.db erzeugt wird. Diese Möglichkeit würde ich (sofern das irgendwie sinnvoll ist) gerne
programmatisch mal ausprobieren. Geht das?
wüsste ich nicht das es sowas nur für einen Ordner gibt (nur als ganzes abschaltbar) . Da musst du vermutlich irgendeine Explorer-Extension installiert haben die nicht sauber programmiert ist (vielfach ist auch die Explorer-Extension des Adobe Acrobat Readers daran schuld (mal testweise deaktivieren). Mach dich erst mal mit dem ProcessExplorer schlau welcher Prozess die Finger auf das File hält, wenn es nur der Explorer ist, hilft es alle Explorer Prozesse zu killen und den Explorer neu zu starten. Ansonsten den Thumbnail-Cache komplett abschalten.
http://answers.microsoft.com/en-us/windows/forum/windows_7-files/window ...
Das deaktiviert nur den Cache, die Vorschubilder lassen sich mit dieser Einstellung aber trotzdem noch anzeigen, sie müssen halt nur jedes mal geladen werden, was je nach Rechner ein kleines bisschen länger dauern kann.

Grüße Uwe