Dateinamen und Verzeichnisse

Die Informationen in diesem Abschnitt gelten für Explorer-Stil und alten Stil Öffnen und Speichern unter Dialogfelder.

Bevor Sie die GetOpenFileName oder GetSaveFileName -Funktion aufrufen, darauf der LpstrFile -Member der OPENFILENAME -Struktur auf den Puffer, um den Dateinamen zu erhalten. Das nMaxFile -Element muss die Größe in Bytes (ANSI-Version) oder 16-Bit-Zeichen (Unicode-Version), des Puffers LpstrFile angeben.

Wenn der Benutzer einen Dateinamen angibt und auf die Schaltfläche OK klickt, kopiert das Dialogfeld ausgewählte Laufwerk, Verzeichnis und Dateiname in der LpstrFile -Puffer. Die Funktion setzt auch die nFileOffset und nFileExtension Mitglieder auf die Offsets in Bytes (ANSI-Version) oder 16-Bit-Zeichen (Unicode-Version), von Anfang des Puffers, der Dateiname und die Dateinamenerweiterung bzw.

Nur abrufen festlegen den Dateinamen und die Erweiterung, den LpstrFileTitle -Member auf einen Puffer zeigen und legen Sie den nMaxFileTitle -Member auf die Größe in Bytes (ANSI-Version) oder 16-Bit-Zeichen (Unicode-Version), des Puffers. Alternativ können Sie den LpstrFile -Puffer in einem Aufruf der Funktion GetFileTitle den Anzeigenamen der ausgewählten Datei zu übergeben. Beachten Sie jedoch, dass der Dateiname, die GetFileTitle gibt eine Erweiterung enthält nur, wenn die Einstellung des Benutzers für die Anzeige von Dateinamen.

Das Dialogfeld verwendet das aktuelle Verzeichnis als das Ausgangsverzeichnis, um Dateien und Verzeichnisse anzeigen für den aufrufenden Prozess. Verwendung der GetCurrentDirectory oder SetCurrentDirectory Funktionen abrufen oder das aktuelle Verzeichnis zu ändern. Verwenden Sie ein anderes Ausgangsverzeichnis ohne Änderung Ihrer aktuelle Verzeichnis das LpstrInitialDir -Element den Namen eines Verzeichnisses angeben. Das Dialogfeld ändert automatisch des aktuellen Verzeichnis, wenn der Benutzer ein anderes Laufwerk oder Verzeichnis auswählt. Um zu verhindern, dass das Dialogfeld das aktuelle Verzeichnis zu ändern, legen Sie das OFN_NOCHANGEDIR-Flag. Dieses Flag verhindert den Benutzer nicht ändern-Verzeichnisse, um eine Datei zu suchen.

Um eine Standard-Dateinamenerweiterung anzugeben, verwenden Sie das LpstrDefExt -Element. Wenn der Benutzer einen Dateinamen, der eine Erweiterung nicht kennt angibt, hinzugefügt das Dialogfeld die Standarderweiterung. Wenn Sie eine Standard-Erweiterung angeben, und der Benutzer einen Dateinamen mit einer anderen Erweiterung gibt, kennzeichnen die Dialog-Box-Sets der OFN_EXTENSIONDIFFERENT.

Damit der Benutzer mehrere Dateien aus einem Verzeichnis auswählen, legen Sie das OFN_ALLOWMULTISELECT-Flag. Um die Kompatibilität mit älteren Anwendungen, die mehrere Auswahldialogfeld verwendet die altmodische Benutzeroberfläche. Wenn Sie ein Explorer-Style mehrere Auswahl-Dialogfeld anzuzeigen, müssen Sie auch das OFN_EXPLORER-Flag festlegen.

Wenn der Benutzer mehr als eine Datei auswählt, gibt der Puffer, auf den der LpstrFile -Member den Dateinamen der ausgewählten Dateien der Pfad zum aktuellen Verzeichnis gefolgt. Das nFileOffset Mitglied ist der Offset zu dem ersten Dateinamen und der nFileExtension -Member wird nicht verwendet. Die folgende Tabelle beschreibt den Unterschied zwischen Explorer-Stil und alten Stil Dialogfelder wieder mehrere Dateinamen.

Dialogfeld im Feld Stil Beschreibung
Explorer-Stil Dialogfelder Die Verzeichnis und Dateinamen Zeichenfolgen sind NULL getrennt, mit einer zusätzlichen NULL-Zeichen nach dem letzten Dateinamen. Dieses Format ermöglicht der Explorer-Stil Dialogfelder wieder lange Dateinamen, die Leerzeichen enthalten.
Mediäval Dialogfelder Verzeichnis und Dateinamen Zeichenfolgen werden durch Leerzeichen getrennt. Für Dateinamen mit Leerzeichen verwendet die Funktion kurze Dateinamen.

Sie können die FindFirstFile -Funktion zwischen langen und kurzen Dateinamen umgewandelt.

Index