Hallo zusammen,
ich stehe vor folgendem Problem:
Ich will überprüfen ob zwei Parameter, die eine Datei darstellen, auf ein und die selbe Datei zeigen.
Kurzes Beispiel: Parameter1= "dieDatei", Parameter2= "/home/user/dieDatei". Wird mein Programm jetzt von /home/user/ aus gestartet, so addressieren die zwei Parameter exakt die gleiche Datei!
Weiß jemand wie ich überprüfen kann, ob die zwei Dateien ein und die selbe ist?
Ich habs schon mit ExtractRelativePath und solchen Dingen versucht, bis jetzt aber leider noch nichts brauchbares erzielt
Wäre über Hilfe sehr dankbar!
Gruß,
iaby
Linux: zwei Pfade auf Gleichheit prüfen
-
- Beiträge: 3444
- Registriert: Mo 11. Sep 2006, 10:24
- OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
- CPU-Target: X32 / X64 / ARMv5
- Wohnort: Krefeld
Christian hat geschrieben:if ((ExtractFilePath(Application.Exename)+Parameter1 = Parameter2)
or (Parameter1 = Parameter2) then
Showmessage('Juhu die dateien sind die gleichen !'+#13+'und ich muss keine Dateiinhalte vergleichen *Kopfschüttel*');
Schade, dass Du die Frage nicht verstanden hast. Zwei gleiche Directories können mit unterschiedlichen Pfaden angesprochen werden. Das geht auch in Windows.
Ist der "aktuelle Pfad" z.B. "c:\test" und es gibt ein directory c:\test\1 dann ist
"c:1", "1", "test\1", "c:\test\1" "..\test\1" und ".\1" alles dasselbe directory.
-Michael
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
Ich hab lediglich das oben beschriebene gefixt. Wenn man alle relativen pfade haben will geht das natürlich auch
if (ExpandFileName(Parameter1) = ExpandFileName(Parameter2) then
Showmessage('Juhu die dateien sind die gleichen !'+#13+'und ich muss keine Dateiinhalte vergleichen *Kopfschüttel*');
zudem kann man hier in beiden pfaden relative benutzen. Sollte mit allen deinen Beispielen funktionieren michael .
warum "test\1" ?? versteh ich net. Die anderen stimmen ja. Bis auf das .\ da bin ich mir nicht sicher unter Windows.
if (ExpandFileName(Parameter1) = ExpandFileName(Parameter2) then
Showmessage('Juhu die dateien sind die gleichen !'+#13+'und ich muss keine Dateiinhalte vergleichen *Kopfschüttel*');
zudem kann man hier in beiden pfaden relative benutzen. Sollte mit allen deinen Beispielen funktionieren michael .
warum "test\1" ?? versteh ich net. Die anderen stimmen ja. Bis auf das .\ da bin ich mir nicht sicher unter Windows.