Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Betriebssysteme (https://www.delphipraxis.net/27-betriebssysteme/)
-   -   Löschen des "WINDOWS "-Ordners (https://www.delphipraxis.net/77721-loeschen-des-windows-ordners.html)

c113plpbr 23. Sep 2006 20:16


Löschen des "WINDOWS "-Ordners
 
Hi DP'ler,

ich hab ein kleines Problem mit meinem Windows und nicht so, wie man sich das vielleicht anhand des Titels denkt ...
Ich habe kürzlich etwas mit WinRAR (v3.51, ich weiß, dass diese version nicht aktuell ist, in 3.61 geht das nicht mehr) entpackt, und wollte das direkt in meinen "WINDOWS"-Ordner gespeichert haben. Dazu hab ich im Entpacken-Dialog von Winrar den Pfad selbst eingetippt (ich weiß nimmer warum ^^ ). Jedenfalls musste ich nach kurzer Zeit feststellen, dass die Dateien nicht in "C:\WINDOWS\" gelandet sind, sondern aufgrund eines Tippfehlers meinerseits in "C:\WINDOWS \" (man beachte das Leerzeichen am Ende!).

Beim Versuch den neuen Windows-Ordner zu löschen, musste ich allerdings herausfinden, dass Windows dann versucht den *richtigen* Windows-Ordner zu löschen, und nicht den falschen. Auch von der Kommandozeile hatte ich keinen Erfolg ... (rmdir "C:\WINDOWS ")

Da ich versuchte dieses Problem zu "reproduzieren" (weil ich es nicht glauben konnte; ich bin dumm ... :oops: ), habe ich inzwischen schon 3 Windows-Ordner, von denen ich gerne 2 wieder los hätte ... ^^ (Tipp: Reproduktion ist allerhöchtens in einer "wertlosen" vm zu empfehlen ...)

Hat jemand eine Idee zur Lösung dieses Problems (es mit sowas wie Knoppix zu probieren wird aufgrund der nicht vorhandenen linux-treiber für meine sata-raid-controller schwer)?

ciao & danke,
Philipp

Matze 23. Sep 2006 20:18

Re: Löschen des "WINDOWS "-Ordners
 
Hi,

ich habe keine Lust das zu reproduzieren *g* aber du hast sicher mal versucht, den Ordner umzubenennen und dann zu löschen, oder? Ich weiß nicht ob das geht, aber das solltest du auf alle Fälle versuchen.

c113plpbr 23. Sep 2006 20:25

Re: Löschen des "WINDOWS "-Ordners
 
Zitat:

Zitat von Matze
ich habe keine Lust das zu reproduzieren *g*

Kann ich gut verstehen ^^
Zitat:

Zitat von Matze
du hast sicher mal versucht, den Ordner umzubenennen und dann zu löschen, oder? Ich weiß nicht ob das geht, aber das solltest du auf alle Fälle versuchen.

Dabei kommt grundsätzlich folgende Fehlermeldung:
Windows-Explorer Fehlermeldung:
---------------------------
Fehler beim Umbenennen der Datei oder des Ordners
---------------------------
WINDOWS kann nicht umbenannt werden: Die Datei wird von einer anderen Person bzw. einem anderen Programm verwendet.

Schließen Sie alle Programme, die die Datei eventuell verwenden können, und wiederholen Sie den Vorgang.
---------------------------
OK
---------------------------

mkinzler 23. Sep 2006 20:30

Re: Löschen des "WINDOWS "-Ordners
 
Hast du es mal auf der Wiederherstellungskonsole oder einer Boot-CD ( Linux, WinPE) versucht? Oder über kurzen Dateinamen (...~)

c113plpbr 23. Sep 2006 20:35

Re: Löschen des "WINDOWS "-Ordners
 
Zitat:

Zitat von mkinzler
Hast du es mal auf der Wiederherstellungskonsole oder einer Boot-CD ( Linux, WinPE) versucht? Oder über kurzen Dateinamen (...~)

Jaaaa, danke, das isses, mit kurzen Dateinamen funktionierts bestens!

ciao & danke,
Philipp

Matze 23. Sep 2006 20:36

Re: Löschen des "WINDOWS "-Ordners
 
Gut, dass es nun geklappt hat, doch handelt es sich dabei um einen Bug in Windows oder wie kann es sein, dass Windows diese Ordner als DEN Windows-Ordner ansieht?

alcaeus 23. Sep 2006 20:44

Re: Löschen des "WINDOWS "-Ordners
 
Soweit ich weiss werden Datei- und Ordnernamen eigentlich getrimmt - warum es WinRAR gelungen ist, einen Ordnernamen mit einem Leerzeichen am Ende anzulegen, ist mir schleierhaft.

Greetz
alcaeus

SirThornberry 23. Sep 2006 20:47

Re: Löschen des "WINDOWS "-Ordners
 
Windows sieht diesen Ornder nicht als "den" Windowsordner an. Jedoch werden beim Ordner anlegen etc. über Windows Boardmittel abschließende Leerzeichen entfernt. Somit wird beim umbenennen intern dann der Dateiname ohne Leerzeichen genommen. Über die Api sollte es jedoch funktionieren (zumindest über die Unicode-Funktionen).

Matze 23. Sep 2006 20:50

Re: Löschen des "WINDOWS "-Ordners
 
Danke für die Aufklärung, konnte mir das nämlich nicht erklären (wieso der Ordner überhaupt angelegt wurde jetzt auch noch nicht), aber das mit dem Trimmen der Leerzeichen klingt plausibel.

c113plpbr 23. Sep 2006 20:52

Re: Löschen des "WINDOWS "-Ordners
 
Zitat:

Zitat von Matze
Gut, dass es nun geklappt hat, doch handelt es sich dabei um einen Bug in Windows oder wie kann es sein, dass Windows diese Ordner als DEN Windows-Ordner ansieht?

Es ist meiner Meinung nach definitiv ein Bug in Windows (zmd. in der "Handhabung" solcher Namen/Pfade), da man ohne kurze Pfade nicht in den Ordner wechseln kann, und bei Löschversuchen einfach das Leerzeichen am ende ignoriert wird, auch wenn man den Pfad in Anführungszeichen schreibt, zmd. in der Konsole. Im Windows-Explorer isses teilweise so, dass wenn man den falschen windows-ordner anklickt, im richtigen Windows-ordner landet, aber auch nicht immer. Teilweise wurden dann noch mehr Windows-Ordner angezeigt, als tatsächlich vorhanden waren.
Zitat:

Zitat von alcaeus
Soweit ich weiss werden Datei- und Ordnernamen eigentlich getrimmt - warum es WinRAR gelungen ist, einen Ordnernamen mit einem Leerzeichen am Ende anzulegen, ist mir schleierhaft.

In der neuen Version ist dies auch überhaupt nicht mehr möglich, aber in meiner veralteten schon ^^ .

ciao, Philipp

SirThornberry 23. Sep 2006 21:00

Re: Löschen des "WINDOWS "-Ordners
 
Ich hab noch bischen rumprobiert. Selbst mit den Api-Funktionen CreateDirectoryA und CreateDirectoryW ist es nicht möglich einen Ordner mit Leerzeichen anzulegen. Es ist also irgendwie ein Rätsel was Winrar da geschafft hat. Vielleicht hat es Winrar auch nur zu einem geschützten Leerzeichen convertiert.

Sunlight7 23. Sep 2006 21:07

Re: Löschen des "WINDOWS "-Ordners
 
Ich hatte das Problem mal mit einem Eintrag im Startmenü, das ein Setup erstellt hat.
Interessant ist, das man den Ordner kopieren konnte, aber nicht löschen oder verschieben, auch nicht mit kurzen Dateinamen :?
Es blieb mir nur, per Diskeditor das Problem zu beheben.
Das war unter XP auf ner FAT32.

c113plpbr 23. Sep 2006 21:07

Re: Löschen des "WINDOWS "-Ordners
 
Zitat:

Zitat von SirThornberry
Ich hab noch bischen rumprobiert. Selbst mit den Api-Funktionen CreateDirectoryA und CreateDirectoryW ist es nicht möglich einen Ordner mit Leerzeichen anzulegen. Es ist also irgendwie ein Rätsel was Winrar da geschafft hat. Vielleicht hat es Winrar auch nur zu einem geschützten Leerzeichen convertiert.

Ne, das geht schon, du musst nur den Ordnernamen mit nem Backslash abschliessen:
Delphi-Quellcode:
CreateDirectory('C:\WINDOWS \', nil);
ciao, Philipp

Sunlight7 23. Sep 2006 21:10

Re: Löschen des "WINDOWS "-Ordners
 
Jo, jetzt war ich so dumm es auch zu probieren, und habe ein "C:\Test " erfolgreich erstellt...

Der Fehlre tritt auf wenn man
Delphi-Quellcode:
CreateDir('C:\Test \');
eingibt.

Lieber nicht probieren!

SirThornberry 23. Sep 2006 21:14

Re: Löschen des "WINDOWS "-Ordners
 
Zitat:

Zitat von Sunlight7
Jo, jetzt war ich so dumm es auch zu probieren, und habe ein "C:\Test " erfolgreich erstellt...

Der Fehlre tritt auf wenn man
Delphi-Quellcode:
CreateDir('C:\Test \');
eingibt.

Lieber nicht probieren!

warum nicht probieren? Genau wie du den Ordner anlegst kannst du ihn auch wieder entfernen. Einfach beim löschen auch den abschließenden Backslash angeben (gerade probiert). Geht sogar über die Commandozeile:
rmdir "ordnername \"

Sunlight7 23. Sep 2006 21:21

Re: Löschen des "WINDOWS "-Ordners
 
Zitat:

Zitat von SirThornberry
warum nicht probieren? Genau wie du den Ordner anlegst kannst du ihn auch wieder entfernen. Einfach beim löschen auch den abschließenden Backslash angeben (gerade probiert). Geht sogar über die Commandozeile:
rmdir "ordnername \"

Stimmt, es ließ sich leicht wieder entfernen, wenn das damals mit dem Startmenü auch so einfach gegangen wäre...
Vielleicht lags daran, das es sehr verschachtelt, oder mehrere sehr lange Namen waren.

vlees91 24. Sep 2006 07:55

Re: Löschen des "WINDOWS "-Ordners
 
Bei mir ist es nicht möglich diesen Ordner anzulegen ("Ordner gibts bereits")
also stimmt bei dir irgendetwas nicht...

SirThornberry 24. Sep 2006 09:15

Re: Löschen des "WINDOWS "-Ordners
 
Zitat:

Zitat von vlees91
Bei mir ist es nicht möglich diesen Ordner anzulegen ("Ordner gibts bereits")
also stimmt bei dir irgendetwas nicht...

wie hast du denn versucht den Ordner anzulegen? Wie beschrieben mit abschließendem Backslash in Anführungszeischen?

Go2EITS 25. Sep 2006 09:26

Re: Löschen des "WINDOWS "-Ordners
 
Problem mit C:\Windows \

Ich habe es gerade mal ausprobiert unter Windows2000. Mit den Code unten ist das Problem gelöst.

Betrifft die Console: (CMD)
Du kannst Verzeichnisse mit Leerraum schon löschen, wenn nicht das gleiche Verzeichnis vorhanden ist.
Liegt das Verzeichnis "Test" und "Test" mit Leerraum vor, geht der Löschen von Test mit Leerraum nicht!

Aber: Der nachfolgende Delphi Code löscht doch das Verzeichnis, man beachte den Leerraum und das Backslash am Ende. Ich habe es bei mir auf das Systemverzeichnis C:\winnt ausprobiert. Unter XP funktioniert es auch!
Delphi-Quellcode:
Program clear;
uses SysUtils;
{$APPTYPE CONSOLE}
begin
CreateDir('c:\Windows \');
writeln('c:\Windows \ erstellt.');
CreateDir('c:\Winnt \');
writeln('c:\Winnt \ erstellt.');readln;

if DirectoryExists('C:\winnt \') then
    begin
    removedir('C:\Winnt \');
    if not DirectoryExists('C:\winnt \') then
       writeln('Loeschen erfolgreich.') else
    writeln('Loeschen nicht erfolgreich.');
    end;

if DirectoryExists('C:\windows \') then
    begin
    removedir('C:\Windows \');
    if not DirectoryExists('C:\winnt \') then
    writeln('Loeschen erfolgreich.') else
    writeln('Loeschen nicht erfolgreich.');
    end;
Readln;
End.
Quick & dirty Code! Readln bedeutet, dass man ein ENTER drücken muss.

Ich vermute, dass intern, wenn via Console versucht wird zu löschen, der Leerraum nicht weitergereicht wird.

Falls das Löschen nicht geht, hast Du einen Trojaner/Virus. Aber auch da gäbe es eine Lösung.
Nachtrag: Und Ansicht aktualisieren, damit man nicht erschrickt! :-D

Hador 25. Sep 2006 09:59

Re: Löschen des "WINDOWS "-Ordners
 
du kannst auch einfach in die Konsole gehen und
Code:
mkdir "test \"
eingeben

PS: hab mir 4 ordner gemacht.
Jetzt meckert er beim löschen, dass die ordner nicht leer seien. Wenn ich dann auf dennoch löschen klicke, macht der einfach nix. :lol:

Mal sehen ob's inner Konsole geht


EDIT:
Jo dort geht's ohne Probleme (rmdir "windows \")

Go2EITS 25. Sep 2006 10:21

Re: Löschen des "WINDOWS "-Ordners
 
mkdir geht nicht auf C:\windows oder C:\winnt wenn das Verzeichnis schon vorhanden ist!
Es wird gemeldet bei mkdir C:\Winnt \ "Unterverzeichnis oder Datei mit dem Namen existiert bereits."

Analog wird bei Verzeichnissen, die schon vorliegen, mit Leerraum und Backslash eine Fehlermeldung ausgegeben und das Verzeichnis nicht angelegt.

Wenn Dur nur c:\test \ anlegst und das Verzeichnis C:\Test NICHT vorliegt, wird eine Fehlermeldung ausgegeben und das Verzeichnis trotzdem angelegt.

Zitat:

Jo dort geht's ohne Probleme (rmdir "windows \")
ist dann richtig, wenn Du kein Verzeichnis mit C:\Windows hast.

Das Problem ist übrigens, wie ich diese Verzeichnisse lösche, nicht anlege.

Beste Grüße
Go2EITS

Hador 25. Sep 2006 10:25

Re: Löschen des "WINDOWS "-Ordners
 
du darfst bei mkdir bzw. rmdir die Anführungszeichen und den Backslash nicht vergessen. dann geht es ohne Probleme

Go2EITS 25. Sep 2006 10:36

Re: Löschen des "WINDOWS "-Ordners
 
@HADOR
OK! So geht es doch! :thumb:
Die Lösung in Übersicht via Console: (Ausführen/cmd)
Anlegen:
Zitat:

mkdir "C:\winnt \"
Löschen:
Zitat:

rmdir "C:\Winnt \"
Es klappt auch ohne meinen DelphiCode :( :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:22 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