Einzelnen Beitrag anzeigen

DevidEspenschied

Registriert seit: 7. Sep 2006
Ort: Berlin
439 Beiträge
 
Delphi 12 Athens
 
#9

AW: FileExists liefert False, obwohl die Datei vorhanden ist

  Alt 10. Aug 2010, 14:46
Versuch mal C:\Windows\Sysnative\WinSAT.exe
Das Verzeichnis Sysnative existiert nicht.

Hast du mit dem (64 bit) Explorer geguckt oder mit deinem (32bit) Delphiprogramm?
Ich habe den Total Commander verwendet, und der listet i.d.R. mehr auf als der Windows-Explorer. Die Suchfunktion arbeitet präziser als die indexbasierte Windowssuche.

Mittlerweile habe ich im Embarcadero-Forum (https://forums.embarcadero.com/threa...threadID=39757) eine Lösung gefunden.

Edit:
Und zwar liefert die MSDN (http://msdn.microsoft.com/en-us/libr...8VS.85%29.aspx) die passende Begründung:

32-bit applications can access the native system directory by substituting %windir%\Sysnative for %windir%\System32. WOW64 recognizes Sysnative as a special alias used to indicate that the file system should not redirect the access. This mechanism is flexible and easy to use, therefore, it is the recommended mechanism to bypass file system redirection. Note that 64-bit applications cannot use the Sysnative alias as it is a virtual directory not a real one.

Das bedeutet, dass ich unter 64 Bit-Windows-Versionen anstatt auf C:\Windows\system32\WinSAT.exe
nun auf C:\Windows\Sysnative\WinSAT.exe zugreifen muss.

Abschließend noch die Frage, ob dieses Verhalten auch bei Vista x64 zutrifft?
Devid
Devid Espenschied
Pre-sales Consultant
Embarcadero Germany GmbH
germany.info@embarcadero.com

Kein Support per PN

Geändert von DevidEspenschied (10. Aug 2010 um 15:00 Uhr)
  Mit Zitat antworten Zitat