Ist "con.txt" auch reserviert ?

Für Fehler in Lazarus, um diese von anderen verifizieren zu lassen.
Antworten
Mathias
Beiträge: 6209
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Ist "con.txt" auch reserviert ?

Beitrag von Mathias »

Ist dies ein Bug ?

Dieses Programm müsste doch eine Datei Namens 'con.txt' erzeugen.
Das 'con' oder 'con.' nicht geht, dies ist klar, dies ist der reservierte Dateiname von der Console.

Code: Alles auswählen

program project1;
var
  f: Textfile;
begin
  AssignFile(f, 'con.txt');
  ReWrite(f);
  Write(f, 'Hello World');
  CloseFile(f);
end.             
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

creed steiger
Beiträge: 957
Registriert: Mo 11. Sep 2006, 22:56

Re: Ist "con.txt" auch reserviert ?

Beitrag von creed steiger »


Mathias
Beiträge: 6209
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Ist "con.txt" auch reserviert ?

Beitrag von Mathias »

Anscheinend ist DOS/Windows die Erweiterung bei reservierten Namen egal.
Mann lernt nie aus. :wink:
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Socke
Lazarusforum e. V.
Beiträge: 3158
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: Ist "con.txt" auch reserviert ?

Beitrag von Socke »

Mathias hat geschrieben:Anscheinend ist DOS/Windows die Erweiterung bei reservierten Namen egal.
Mann lernt nie aus. :wink:

Versuchs mal mit einem absoluten Pfad C:\con.txt oder einem vollständigen Pfad \\?\C:\con.txt. Spätestens mit letzterem solltest du die Interpretation als Gerätedatei verhindern können. (Edit: Der eindeutigste Pfad zur Gerätedatei wäre \\.\CON)
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

Mathias
Beiträge: 6209
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Ist "con.txt" auch reserviert ?

Beitrag von Mathias »

Code: Alles auswählen

c:\>copy v:test.txt \\?\c:\con.txt
Zugriff verweigert
        0 Datei(en) kopiert.
 
c:\>md test
 
c:\>copy v:test.txt \\?\c:\test\con.txt
        1 Datei(en) kopiert.
 
c:\>dir test
 Volume in Laufwerk C: hat keine Bezeichnung.
 Volumeseriennummer: 7869-F9F9
 
 Verzeichnis von c:\test
 
23.04.2014  18:19    <DIR>          .
23.04.2014  18:19    <DIR>          ..
22.04.2014  19:47                72 con.txt
               1 Datei(en),             72 Bytes
               2 Verzeichnis(se), 108.609.712.128 Bytes frei
 
c:\>del test\con.txt
Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung ist falsch.
 
c:\>cd test
 
c:\test>del con.txt
Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung ist falsch.
 
c:\test>

Interessant, aber leider ist die Datei nicht mehr löschbar, auch nicht im Explorer.

Aber so hat es zu Glück geklappt: del \\?\c:\test\con.txt

Die ganze Procedur geht auch mit con und nicht nur mit con.txt.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Antworten