Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Linux Filename Escape? (https://www.delphipraxis.net/52331-linux-filename-escape.html)

supermuckl 28. Aug 2005 01:48


Linux Filename Escape?
 
Hi.
Ich habe das Problem, das ich mit Kylix Dateien und ganze Ordnerstrukturen kopieren will.
Unter Windows geht das ganz super, aber unter Linux muss man wohl, wenn man Dateien öffnen will, den Dateinamen (also auch den Pfad) Escapen.
Nun würde ich gerne eine Funktion machen, die mir das macht (wenn es sowas nicht schon gibt) und dazu müsste ich wissen, was unter linux alles mit dem \ Escapezeichnen escaped werden soll.

Demnach würde ich dann alle Zeichen, die man Escapen muss, ersetzen durch '\'+Zeichen

Was ich noch komisch finde, ist das die findfirst, findnext Sache unter Linux die Pfade und Dateinamen "unescaped" wiedergeben.

Kann mir da einer Helfen?

Kylix Forum und Linux Existiert ja irgendwie nicht(mehr) deshalb hab ichs hier mal gepostet.

Beckman 28. Aug 2005 04:05

Re: Linux Filename Escape?
 
also
Delphi-Quellcode:
function IncludeTrailingPathDelimiter(const S: string): string;
ist OS/spezifisch.

ich versteh zwar net genau, was du mit 'escape' zeichen meinst, aber entweder das oder sonst
strvar := stringreplace(strvar, '\', '/', [rfReplaceAll]); sollte dir weiterhelfen.


sonst erklaer mir plz was genau mit 'escape zeichen' gemeint ist.


lg

supermuckl 28. Aug 2005 04:37

Re: Linux Filename Escape?
 
ne das ists net.
also im linux filesystem musst du für filenamen die ein leerzeichen enthalten das leerzeichen escapen mit \
also "\ "
ich weis blos net, obs mit noch anderen sonderzeichen sein muss, das man die escapen muss, damit man die datei öffnen kann (damit halt der dateiname gültig ist)

ich krieg halt beispielsweise mit dem kylix findfirst,findnext dateinamen, die leerzeichen enthalten (also der dateiname wie er eingegeben wurde), die ich aber dann nicht mit Tfilestream öffnen kann (weil die zeichen escaped übergeben werden müssen)

meine kleine datei.txt -> meine\ kleine\ datei.txt

wenns nur das leerzeichen wäre, wärs ja kein problem.. einfach replacen mit "\ "
aber ich weis halt nicht, ob noch andere sonderzeichen dabei sind

und bevor ich jetzt 256 dateien erstelle, die alle nen anderes zeichen als dateinamen haben und das dann teste, frag ich lieber mal obs da was gibt ;)

beispiel: file-open error: /root/1/=asdasd=/neu winrar archive.rar Cannot open file "/root/1/=asdasd=/neu winrar archive.rar". Datei oder Verzeichnis nicht gefunden


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:34 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz