Ich kann die Datei nicht löschen
spacer
Autor Nachricht
pibesumse
Hält's aus hier
Beiträge: 15



BeitragVerfasst: Do 22.09.11 22:03 
Hallo liebe Freunde,
wenn ich eine datei löchen möchten,
Display eine Meldung wie diese kommt: "Ein anderes Programm verwendet die Datei, das kann man nicth löschen"
meine frage ist; Wie kann ich wissen, welches Programm diese Datei verwendet ?
Vielen Dank im Voraus.


Moderiert von user profile iconNarses: Topic aus VCL (Visual Component Library) verschoben am Do 22.09.2011 um 22:21
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
Werbung ausblenden? Dann registriere Dich kostenlos. Weitere Gründe für eine Registrierung.


Werbung ausblenden? Dann registriere Dich kostenlos. Weitere Gründe für eine Registrierung.
Xion
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starhalf offtopic star
EE-Maler
Beiträge: 1754
Erhaltene Danke: 62

Windows XP
Delphi (2005 Bug Edition), Java (Eclipse), Haskell (ghci), C++ (Visual Studio 2010, Qt Creator)
BeitragVerfasst: Fr 23.09.11 01:28 
Wenns nur ums löschen geht, dann nimm:
www.chip.de/download...32-Bit_18414122.html

_________________
a broken heart is like a broken window - it'll never heal
Jen, [this computer] is infected. If this was a human being, I'd shoot it in the face. (IT Crowd)
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
rushifell
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starhalf offtopic star
Beiträge: 161
Erhaltene Danke: 6



BeitragVerfasst: Fr 23.09.11 06:25 
Hast Du den Rechner schonmal neu gestartet und dann versucht, die Datei zu löschen?
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
pibesumse Threadstarter
Hält's aus hier
Beiträge: 15



BeitragVerfasst: Fr 23.09.11 08:08 
Ich spreche nicht gut Deutsch,
Wenn ich falsch schreibe,Verzeihen Sie mich,

Lieber rushifell,
Ich habe es nicht ausprobiert aber auch
Ich möchte nicht den Computer neu starten.
weil,Einige Programme beim Start ausgeführt werden.

und Lieber Xion
Ich installierte das Programm.
Weisst du wie kann ich diesen Prozess mit Delphi-Codes machen ?
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
Horschdware
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 724
Erhaltene Danke: 53

Win XP professional, Win 7 Professional x64, Ubuntu
Delphi 5, Delphi 2005 Personal, Delphi 2006, Delphi XE, C++ Builder 5, PHP, SAP R/3
BeitragVerfasst: Fr 23.09.11 09:10 
Ich denke, es wäre wichtig zu wissen, um was für eine Datei es sich überhaupt handelt.

_________________
Delphi: XE - OS: Windows 7 Professional x64
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
Luckie
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starhalf offtopic starofftopic star
Beiträge: 11803
Erhaltene Danke: 146

WindowsXP Professional SP2
BDS2006, VS C++ Express, Eclipse (Java), Flex (Flash, AS)
BeitragVerfasst: Fr 23.09.11 09:13 
Ich weiß nicht, ob das so eine gute Idee ist, eine Datei löschen zu wollen, die offenbar von einem anderen Programm gerade genutzt wird. Wir nennen das im Deutschen, jemanden den Teppich unter den Füßen wegziehen.

_________________
Gruß Michael
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
Horschdware
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 724
Erhaltene Danke: 53

Win XP professional, Win 7 Professional x64, Ubuntu
Delphi 5, Delphi 2005 Personal, Delphi 2006, Delphi XE, C++ Builder 5, PHP, SAP R/3
BeitragVerfasst: Fr 23.09.11 09:16 
Deswegen würde ich ja gerne wissen, was das für eine Datei ist.
Ist es eine Datei, die von einem selbst geschriebenen Programm, welches seit Stunden hängt offen gehalten wird?
Gehört die Datei zu einem wichtigen Programm?
Oder ist das nur die Sperrdatei eines lustigen Schadprogramms?

_________________
Delphi: XE - OS: Windows 7 Professional x64
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Moderator
Beiträge: 8118
Erhaltene Danke: 251

Win XP, Win 7
D7 PE, RAD Studio 2009 Professional
BeitragVerfasst: Fr 23.09.11 11:39 
Ich habe diese Meldung auch öfter. Besonders bei gerade neu erstellten Dateien oder Ordnern (z.B. aus einem heruntergeladenen Archiv entpackt), die ich umbenennen (oder auch einzelne Dateien aus dem Archiv) löschen möchte. Da blockiert unter Windows 7 regelmäßig und ausdauernd der Explorer die Dateien, bzw. vermutlich der Indizierungsdienst oder sowas in der Art.
Mit dem Unlocker, der oben verlinkt ist, lassen sich diese Sperren aufheben, und die Dateien lassen sich bearbeiten/umbenennen/löschen.

Wie man das selbst umsetzt, weiß ich aber leider nicht.

_________________
Oel ngati kameie.
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 15840
Erhaltene Danke: 741

XP, W7 x64 (Chrome, IE9, FF), Debian, (OSX 10.7)
RAD XE 2, Java (NB), C++, C# (VS 2010), JS/HTML, PHP, Lazarus
BeitragVerfasst: Fr 23.09.11 13:33 
Um die ursprüngliche Frage zu beantworten:
Dafür gibt es den Process Explorer.
technet.microsoft.co...ysinternals/bb896653
Über die Suche lassen sich die Handles auf eine Datei finden.

In Delphi kann man das genauso machen, nämlich indem man alle Prozesse und alle Handles usw. dieser Prozesse durchläuft. Dann muss man nur noch den Dateinamen zu einem Handle herausfinden und vergleichen, ob es die gesuchte Datei ist.
Stichworte: NtQueryObject, NtQuerySystemInformation

// EDIT:
user profile iconGausi hat folgendes geschrieben Zum zitierten Posting springen:
Ich habe diese Meldung auch öfter. [...] Da blockiert unter Windows 7 regelmäßig und ausdauernd der Explorer die Dateien, bzw. vermutlich der Indizierungsdienst oder sowas in der Art.
Das sind eingeklinkte Viewer oder andere Extensions. Auf einem frischen System hatte ich das noch nie. Nur, wenn ich da solche Tools installiere, passiert das dann. Bei meinen eigenen Extensions ist das anfangs auch manchmal passiert. :D
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
Luckie
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starhalf offtopic starofftopic star
Beiträge: 11803
Erhaltene Danke: 146

WindowsXP Professional SP2
BDS2006, VS C++ Express, Eclipse (Java), Flex (Flash, AS)
BeitragVerfasst: Fr 23.09.11 13:52 
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Um die ursprüngliche Frage zu beantworten:
Dafür gibt es den Process Explorer.
technet.microsoft.co...ysinternals/bb896653
Über die Suche lassen sich die Handles auf eine Datei finden.

In Delphi kann man das genauso machen, nämlich indem man alle Prozesse und alle Handles usw. dieser Prozesse durchläuft. Dann muss man nur noch den Dateinamen zu einem Handle herausfinden und vergleichen, ob es die gesuchte Datei ist.

Nein, lässt es sich nicht. Nicht umsonst installiert der ProcessExplorer einen Treiber.
ausblenden volle Höhe Delphi-Quelltext markieren
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
{*******************************************************************************
Procedure: GetFileNameByHandle
Author : EvilSoft
Date : 2008-09-04
Comment : Gets the filename associated to the given handle.
Does not work properly when requested objects do not answer.
Processing just stops.
There is no proper way in user mode for this task.
*******************************************************************************}

function GetFileNameByHandle(FileHandle: THandle): string;
var
FileNameInfo : TFileNameInformation;
ObjectNameInfo : TObjectNameInformation;
IoStatusBlock : TIOStatusBlock;
res, dwReturn : DWORD;
begin
result := '';
res := NtQueryInformationFile(FileHandle, @IoStatusBlock, @FileNameInfo,
SizeOf(FileNameInfo.FileName), FileNameInformation);
if res = STATUS_SUCCESS then
begin
res := NtQueryObject(FileHandle, ObjectNameInformation,
@ObjectNameInfo, SizeOf(ObjectNameInfo.Name.Buffer), @dwReturn);
if res = STATUS_SUCCESS then
begin
SetLength(result, MAX_PATH);
SetLength(result, WideCharToMultiByte(CP_ACP, 0,
@ObjectNameInfo.Name.Buffer[ObjectNameInfo.Name.MaximumLength -
ObjectNameInfo.Name.Length],
ObjectNameInfo.Name.Length div SizeOf(WideChar),
@result[1], MAX_PATH, nil, nil));
end
else
begin
SetLength(result, MAX_PATH);
SetLength(result, WideCharToMultiByte(CP_ACP, 0,
@FileNameInfo.FileName[0], FileNameInfo.FileNameLength div
SizeOf(WideChar), @result[1], MAX_PATH, nil, nil));
end;
end;
end;

_________________
Gruß Michael
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 15840
Erhaltene Danke: 741

XP, W7 x64 (Chrome, IE9, FF), Debian, (OSX 10.7)
RAD XE 2, Java (NB), C++, C# (VS 2010), JS/HTML, PHP, Lazarus
BeitragVerfasst: Fr 23.09.11 16:19 
user profile iconLuckie hat folgendes geschrieben Zum zitierten Posting springen:
Nein, lässt es sich nicht. Nicht umsonst installiert der ProcessExplorer einen Treiber.
Unter Windows 2000 ja, unter zumindest Vista und Windows 7 nein (es sei denn das geht auch ohne Adminrechte), bei XP bin ich nicht sicher.

Abgesehen davon habe ich das auch in einem unserer Projekte bereits umgesetzt. Das funktioniert auch aus einem normalen Programm heraus. Nur muss man viel mehr prüfen als Quelltexten wie dem von dir geposteten. Meiner dürfte an die 500 Zeilen haben insgesamt. Der Quelltext ist leider nicht Open Source, sonst würde ich ihn posten.
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
Luckie
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starhalf offtopic starofftopic star
Beiträge: 11803
Erhaltene Danke: 146

WindowsXP Professional SP2
BDS2006, VS C++ Express, Eclipse (Java), Flex (Flash, AS)
BeitragVerfasst: Fr 23.09.11 17:56 
Also unter XP funktioniert der Quellcode (oben) auf manchen Rechnern und auf manchen auch wieder nicht. Eventuell hast du mit deinem auch bisher nur Glück gehabt. Ich kann allerdings nur für XPO sprechen. Der Thread, in dem das mal diskutiert wurde, müsste noch hier im Forum zu finden sein.

_________________
Gruß Michael
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 15840
Erhaltene Danke: 741

XP, W7 x64 (Chrome, IE9, FF), Debian, (OSX 10.7)
RAD XE 2, Java (NB), C++, C# (VS 2010), JS/HTML, PHP, Lazarus
BeitragVerfasst: Fr 23.09.11 18:29 
user profile iconLuckie hat folgendes geschrieben Zum zitierten Posting springen:
Also unter XP funktioniert der Quellcode (oben) auf manchen Rechnern und auf manchen auch wieder nicht.
Stimmt, man muss wie gesagt noch viel mehr prüfen und tricksen. Leider ist das alles undokumentiert...
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
pibesumse Threadstarter
Hält's aus hier
Beiträge: 15



BeitragVerfasst: Fr 23.09.11 18:48 
Vielen Dank für Ihre Erklärung und Hilfe,
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
pibesumse Threadstarter
Hält's aus hier
Beiträge: 15



BeitragVerfasst: Fr 23.09.11 19:07 
Lieber, Luckie, Du hast recht,
es wird nicht richtig dass ich die Datei löschen werde, wenn ein program wird genutz,
so ich will nur wissen welches Programm diese Datei verwendet.

"Wir nennen das im Deutschen, jemanden den Teppich unter den Füßen wegziehen."
Ich lernte einen neuen ausdruck. :wink:
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
home home