Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Laufwerkinhalt vergleichen, Localized und Physical Name? (https://www.delphipraxis.net/139861-laufwerkinhalt-vergleichen-localized-und-physical-name.html)

Angel4585 7. Sep 2009 08:49


Laufwerkinhalt vergleichen, Localized und Physical Name?
 
Guten Morgen!

Ich versuche unter Vista Laufwerk C mit Laufwerk D zu vergleichen, also ob und welche Dateien auf beiden Seiten da sind.
Jetzt habe ich C:\Programme\ bekomme aber bei FindFirst, bzw FindNext C:\Program Files\ mir ist das schon bekannt, dass Vista diese Lokalisierung(wie heisst diese Funktion nochmal richtig) drin hat, aber wie kann ich jetzt D:\Programme\ (der wirklich so heisst) mit C:\Programme\ vergleichen?
Gibt es unter D2005 schon Funktionen um den lokalisierten und den physischen Namen zu unterscheiden?
Oder habt ihr mir einen Tipp wie ich das am besten machen kann?
:angel:

himitsu 7. Sep 2009 09:10

Re: Laufwerkinhalt vergleichen, Localized und Physical Name?
 
ich bin jetzt mal ganz böse .... nur so als Tipp > Hier im Forum suchenLocalized

wobei es diese Lokalisierung schon in XP und vermutlich in der ganzen NT-Reihe schon gibt, aber da nur noch nicht so exzesiev genutzt wurde

die nötigen Funktionen laufen teilweise sogar unter Win9x schon

Angel4585 7. Sep 2009 09:18

Re: Laufwerkinhalt vergleichen, Localized und Physical Name?
 
Danke, immer wenns en Haufen Ergebnisse gäbe vergss ich zu suchen :wall:

Aber wie sollte man dann eigentlich Dateien auf die andere Seite kopieren?
Sollte man einen Ordner anlegen der den lokalisierten Ordnernamen hat?
Oder einen Ordner mit dem physischen Namen?
Oder kann man sogar den physischen anlegen und den lokalisierten setzen?

Naja ich such mal aber falls es ne Meinung dazu gibt wär ich sehr dankbar :)

edit: Und was wenn auf einer Seite der physische Ordner Programme und der physische Ordner Program Files liegen?

himitsu 7. Sep 2009 09:26

Re: Laufwerkinhalt vergleichen, Localized und Physical Name?
 
Wenn du den Ordner mit dem physischen Namen anlegst, dann mußt du die Ordnerattribute und auch die entsprechende INI mit kopieren.

In der Neuauflage meines hSyncs wird nur physisch verglichen und der Lokalisierte Name wird nur zur Anzeige gentzt ... sonst finde ich das Chaos zu groß, weil du dann ja physisch mit lokalisiert vermischst und da dann bis zu 4 Ordner im Chaos wie 2 Ordner behandelt werden, wobei einer sogar unabhänig sein kann.

würden bei dir ja als ein Ordner behandelt, da sie optisch gleich heißen
C:\Ordner_1 (lokalisiert Verzeichnis_1)
C:\Verzeichnis_1

Und diese beiden würden/müßten dann nur mit D:\Verzeichnis_1 verglichen werden, weil D:\Ordner_1 ja nicht Verzeichnis_1 in der Anzeige heißt, aber was ist dann mit D:\Ordner_1?
Der bliebe dann außen vor, obwohl er ja eine physiche Kopie hat, aber nach deiner Vorgabe dann optisch kein Gegenstück hat, obwohl es physisch vorhanden wäre. :freak:
D:\Ordner_1 (nicht lokalisiert)
D:\Verzeichnis_1



Also Programmintern nehme ich nur die physischen Namen ud bei der Anzeige wird der lokalisierte verwendet, damit der User sich nicht wundert.

Angel4585 7. Sep 2009 09:51

Re: Laufwerkinhalt vergleichen, Localized und Physical Name?
 
immer mit dem psyikalischen namen ist so ein Problem, weil fileexists('C:\Programme\Unterordner\irgendnedatei .bla') leider true liefert. Und jedesmal prüfen ob das jetz lokalisiert oder physikalisch ist, macht die ganze sache extrem langsam..

himitsu 7. Sep 2009 10:21

Re: Laufwerkinhalt vergleichen, Localized und Physical Name?
 
Zitat:

Zitat von Angel4585
immer mit dem psyikalischen namen ist so ein Problem, weil fileexists('C:\Programme\Unterordner\irgendnedatei .bla') leider true liefert.

Sicher?

FileExists nutzt doch intern auch nur GetFileAttributes oder FindFirstFile und diese sollten eigentlich nicht lokalisiert werden ... dachte ich zumindestens :gruebel:

Angel4585 7. Sep 2009 12:11

Re: Laufwerkinhalt vergleichen, Localized und Physical Name?
 
Zitat:

Zitat von himitsu
Zitat:

Zitat von Angel4585
immer mit dem psyikalischen namen ist so ein Problem, weil fileexists('C:\Programme\Unterordner\irgendnedatei .bla') leider true liefert.

Sicher?

Sicher, grad mit nem Testprogramm getestet :wall:
Naja ich mach das jetz so, dass ich den physikalischen Namen vorher noch auswerte, dann sollte es gehn :)


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