AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Dateien in Benutzung ermitteln.

Ein Thema von MartinK · begonnen am 1. Mär 2017 · letzter Beitrag vom 5. Apr 2017
Antwort Antwort
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#1

AW: Dateien in Benutzung ermitteln.

  Alt 2. Mär 2017, 19:27
Wenn es nur darum geht den Fehler im eigenen Code zu finden, sollte es der Prozess Explorer und Konsorten doch tun.

Klingt aber als wenn du unsauber progranmiert hättest. Guck doch mal den Code durch: Nicht freigegeben FileStreams, nicht geschlossene Dateihandle usw...
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
MartinK

Registriert seit: 21. Jun 2009
Ort: Germering (Germany)
89 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#2

AW: Dateien in Benutzung ermitteln.

  Alt 2. Mär 2017, 22:09
Danke für die zahlreichen Tipps
ich denke ich werde mich zunächst mit den beiden MS Tools versuchen und anschl. Rückmeldung geben woran's lag und wie ich es rausgefunden habe.

vG Martin
Martin Kuhn
  Mit Zitat antworten Zitat
MartinK

Registriert seit: 21. Jun 2009
Ort: Germering (Germany)
89 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#3

AW: Dateien in Benutzung ermitteln.

  Alt 4. Apr 2017, 12:45
Zwischenstand:
- Es handelt sich doch um nicht um eine "geöffnete Datei" ansich, sondern um einen "(Unter)Ordner" innerhalb Appdata/Roaming den meine Applikation scheinbar irgendwie blockiert.
Dieser Ordner kann nicht gelöscht/Renamed werden , was ich aber tun müsste (für eine Backup-Funktionalität).

- Ich bin mir ziemlich sicher dass ich keine "Bugs im Code an sich habe". Wie sollte ich auch einen Ordner "offen halten". Bei Ordnern gibt es ja kein "CloseFile", "free" etc.
Der Process-Explorer und Process Monitor von MS werden mir deswegen vermutlich auch nur wenig bei der Suche helfen

- Was ich jetzt noch getestet habe: Ich habe im Programm verwendete Komponenten die eine "Directory-Eigenschaft" die dies evtl. verursachen könnten, -> diese habe ich per Sourcecode bewusst auf einen anderen Ordner umgestellt.
und zwar bei allen TOpenDialog(InitialDir), TSaveDialog (InitialDir), TDirectoryListbox (Directory)
leider war es das auch (noch) nicht

Habt ihr noch Ideen was ich noch prüfen könnte ? Gibt es überhaupt noch weitere Komponenten die eine Directory Eigenschaft habe die mir jetzt nicht aufgefallen sind?

vG Martin
Martin Kuhn
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.531 Beiträge
 
Delphi 12 Athens
 
#4

AW: Dateien in Benutzung ermitteln.

  Alt 4. Apr 2017, 13:35
"Offen" bedeutet, dass irgendwo ein "Handle" auf diesem Dateisystemobjekt (Datei oder Verzeichnis) liegt, also eine "geöffente" Verbindung.
Und ja, das gibt es auch zu Verzeichnissen, denn für das Dateisystem (z.B. FAT und NTFS) sind Verzeichnisse auch nur "Dateien".
z.B. das aktive Arbeitsverzeichnis oder eine aktive Dateisuche ala (FindFirst/FindFirstFile).

Versuch mal SetCurrentDirectory(PChar(ExtractFileDir(ParamStr(0)))); .

Diese Dialoge ändern das aktuelle Arbeitsverzeichnis.
PS: Das ist übrigens auch einer der unzähligen Gründe, warum man niemals mit relativen Pfaden arbeiten sollte.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu ( 4. Apr 2017 um 13:40 Uhr)
  Mit Zitat antworten Zitat
MartinK

Registriert seit: 21. Jun 2009
Ort: Germering (Germany)
89 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#5

AW: Dateien in Benutzung ermitteln.

  Alt 4. Apr 2017, 15:52
"Offen" bedeutet, dass irgendwo ein "Handle" auf diesem Dateisystemobjekt (Datei oder Verzeichnis) liegt, also eine "geöffente" Verbindung.
Und ja, das gibt es auch zu Verzeichnissen, denn für das Dateisystem (z.B. FAT und NTFS) sind Verzeichnisse auch nur "Dateien".
z.B. das aktive Arbeitsverzeichnis oder eine aktive Dateisuche ala (FindFirst/FindFirstFile).
Ich glaube genau das war der entscheidende Hinweis auf der Suche nach der Nadel im Heuhaufen!
Habe nochmal alle FindNext in meinem SourceCode Aufrufe separat überprüft und dabei einen aus dem WWW kopierten Sourcecode einer Funktion als vermutlich Übeltäter entlarvt.
Dort wurde FindClose vergessen

sieht so aus als bekäme ich es endlich in den Griff !



M
Martin Kuhn
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#6

AW: Dateien in Benutzung ermitteln.

  Alt 4. Apr 2017, 22:11
Was mir in dem Zusammenhang noch einfällt:

Wenn man z. B. mit einem Dateiöffnendialog ... was öffnet / auswählt, so wechseln diese Dialoge ganz gerne mal das Verzeichnis, womit das Arbeitsverzeichnis des Programmes nun das Verzeichnis wird, aus dem man was auswählte.

Ein Verzeichnis, das von irgendeiner Applikation als Arbeitsverzeichnis genutzt wird, kann man in der Regel weder umbenennen, noch löschen.

Bei vielen Dialogen kann man unter Optionen ofNoChangeDir auf True setzen. Damit könnte man dann eventuell eine mögliche Ursache des Problems beseitigen.

Geändert von nahpets ( 5. Apr 2017 um 13:00 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#7

AW: Dateien in Benutzung ermitteln.

  Alt 4. Apr 2017, 14:01
Zwischenstand:
- Es handelt sich doch um nicht um eine "geöffnete Datei" ansich, sondern um einen "(Unter)Ordner" innerhalb Appdata/Roaming den meine Applikation scheinbar irgendwie blockiert.
Dieser Ordner kann nicht gelöscht/Renamed werden , was ich aber tun müsste (für eine Backup-Funktionalität).
da ich selbst nicht so tief in den Untiefen von Windows bewandert bin, es gibt Situationen in denen sich (unter)Ordner gegen Löschung/Umbenennung wehren, obwohl kein offensichtlicher Grund hierfür vorliegt. Typisch ist dann eine Fehlermeldung ohne jeden Bezug zur scheinbaren Realität mit den Optionen Wiederholen,Überspringen,Abbrechen.
Versuchst Du die gleichen Aktivitäten mit Hilfe einer Batch-Datei zu erledigen, klappt es in den meisten Fällen. Will sagen, u.u ist es API-Abhängig wie Dateien/Verzeichnisse reagieren und es könnte sein daß im Hintergrund der eine oder andere Service sich für Deine Datei/Verzeichnis interessiert. Zusätzlich können einzelne Dateien, für die Du nicht die notwendige Berechtigung hast, ganze Datei(gruppen) vor Zugriffen "schützen".

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Hannah French

Registriert seit: 5. Apr 2017
1 Beiträge
 
#8

AW: Dateien in Benutzung ermitteln.

  Alt 5. Apr 2017, 03:42
Thanks for the numerous tips
json editor
  Mit Zitat antworten Zitat
MartinK

Registriert seit: 21. Jun 2009
Ort: Germering (Germany)
89 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#9

AW: Dateien in Benutzung ermitteln.

  Alt 5. Apr 2017, 03:46
Thanks for the numerous tips [/URL]
+1

DANKE
Martin
Martin Kuhn
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:59 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz