Kann man davon ausgehen, dass der Pfad C: \ WINDOWS \ system32 immer existiert?

8

Auf Betriebssystem von Win 2000 oder später (jede Sprache) kann ich davon ausgehen, dass dieser Pfad immer existiert? Zum Beispiel weiß ich, dass auf Win XP in einigen Sprachen das Verzeichnis "Programme" einen anderen Namen hat. Stimmt das für den Ordner System32?

Danke. Ohad.

    
Ohad Horesh 27.10.2008, 06:32
quelle

6 Antworten

21

Sie können definitiv nicht davon ausgehen, dass Windows auf einem anderen Laufwerksbuchstaben oder in einem anderen Verzeichnis installiert werden könnte. Bei einer früheren Arbeit wurde PC beispielsweise in D: \ WINNT installiert.

Die kurze Antwort besteht darin, den API-Aufruf GetSystemDirectory () zu verwenden, der den Pfad zurückgibt, nach dem Sie suchen.

Die längere Antwort ist zu fragen: Musst du das wirklich wissen? Wenn Sie damit Dateien in das Windows-Verzeichnis kopieren, sollten Sie nachfragen, ob Sie das wirklich tun möchten. Das Kopieren in das Windows-Verzeichnis wird nicht empfohlen, da Sie andere Anwendungen sehr leicht durcheinander bringen können. Wenn Sie den Pfad verwenden, um DLLs zu finden, warum verlassen Sie sich nicht einfach auf das Betriebssystem, um das richtige zu finden, ohne einen Pfad anzugeben? Wenn Sie sich mit den Betriebssystemdateien beschäftigen, bedenken Sie: Wird das in Zukunft funktionieren? Im Allgemeinen ist es besser, nicht explizit im Windows-Verzeichnis herumzustöbern, wenn Sie möchten, dass Ihr Programm in zukünftigen Windows-Versionen funktioniert.

    
DavidK 27.10.2008, 07:03
quelle
16

Nein, das kannst du nicht annehmen.

Windows kann auf einem anderen Pfad installiert werden. Eine Lösung besteht darin, nach GetSystemDirectory (implementiert als Teil der Windows-API) zu suchen.

    
vmarquez 27.10.2008 06:45
quelle
4

Windows kann auf einer anderen Festplatte und / oder in einem anderen Ordner installiert werden. Verwenden Sie die Umgebungsvariablen% windir% oder% systemroot%, um Sie zum Windows-Ordner zu bringen und system32 anzufügen. Oder verwenden Sie die% path% Variable, es ist normalerweise der erste Eingang und die bevorzugte Methode für die Suche nach Dateien wie dlls AFAIK. Laut Kommentar: Verlassen Sie sich nicht zu sehr darauf, dass das system32-Verzeichnis das erste Element ist. Ich denke aber, es ist sicher anzunehmen, dass es irgendwo in% path% ist.

    
Jasper Bekkers 27.10.2008 06:42
quelle
3

Ich würde die GetWindowsDirectory Win32-API verwenden, um das aktuelle Windows-Verzeichnis abzurufen, System32 anzuhängen und dann zu überprüfen, ob es existiert.

    
jussij 27.10.2008 06:42
quelle
2

Es ist möglicherweise sicherer, die Umgebungsvariable "windir" zu verwenden und dann "System32" an das Ende dieses Pfades anzuhängen. Manchmal können sich Fenster in einem anderen Ordner oder einem anderen Laufwerk befinden, so dass "windir" Ihnen sagen wird, wo es ist.

Soweit ich weiß, sollte sich der Ordner system32 immer unter dem Windows-Ordner befinden.

    
Jarod Elliott 27.10.2008 06:36
quelle
0

Nur ein Hinweis, aber GetWindowsDirectory () kann in einer Terminal Server-Umgebung (z. B. Citrix) einen eindeutigen Pfad für einen Remote-Benutzer zurückgeben.

Linktext

Da immer mehr Unternehmen virtualisierte Desktops verwenden, müssen Entwickler dies berücksichtigen.

    
Ed Manet 01.12.2008 14:44
quelle

Tags und Links