Delphi-PRAXiS
Seite 2 von 3     12 3      

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)

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 \")


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:29 Uhr.
Seite 2 von 3     12 3      

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