I nomi dei file e delle directory

Le informazioni in questa sezione si applicano alle finestre di dialogo Apri e Salva con nome vecchio stile sia di tipo Esplora risorse.

Prima di chiamare le funzioni GetOpenFileName o GetSaveFileName , il lpstrFile membro della struttura OPENFILENAME deve puntare al buffer per ricevere il nome del file. Il membro nMaxFile deve specificare la dimensione in byte (versione ANSI) o in caratteri (versione Unicode), a 16-bit del buffer lpstrFile.

Se l'utente specifica un nome di file e fa clic sul pulsante OK , nella finestra di dialogo copia l'unitÓ selezionata, directory e nome del file nel buffer lpstrFile . La funzione imposta anche i membri nFileOffset e nFileExtension per gli offset, in byte (versione ANSI) o 16 bit caratteri (versione Unicode), dall'inizio del buffer per il nome del file e l'estensione, rispettivamente.

Per recuperare solo il nome del file e l'estensione, impostare il membro lpstrFileTitle per puntare a un buffer e impostare il membro nMaxFileTitle su dimensione in byte (versione ANSI) o in caratteri (versione Unicode), a 16-bit del buffer. In alternativa, Ŕ possibile passare il buffer lpstrFile in una chiamata alla funzione GetFileTitle per ottenere il nome di visualizzazione del file selezionato. Si noti, tuttavia, che il nome del file che restituisce GetFileTitle include un'estensione solo se questa Ŕ la preferenza dell'utente per visualizzare i nomi dei file.

Nella finestra di dialogo utilizza la directory corrente per il processo di chiamata come la directory iniziale da cui partire per visualizzare file e directory. Uso il GetCurrentDirectory o SetCurrentDirectory funzioni per ottenere o cambiare la directory corrente. Per specificare una directory diversa iniziale senza cambiare la directory corrente, utilizzare il membro lpstrInitialDir per specificare il nome di una directory. Nella finestra di dialogo modifica automaticamente la directory corrente quando l'utente seleziona un disco diverso o una directory. Per evitare che nella finestra di dialogo Cambia la directory corrente, impostare il flag OFN_NOCHANGEDIR. Questo flag non impedisce all'utente di cambiare directory per cercare un file.

Per specificare un'estensione di nome file predefinito, utilizzare il membro lpstrDefExt . Se l'utente specifica un nome di file che non Ŕ un'estensione, nella finestra di dialogo aggiunge l'estensione predefinita. Se si specifica un'estensione predefinita e l'utente specifica un nome di file con estensione diversa, il box di dialogo set il OFN_EXTENSIONDIFFERENT bandiera.

Per consentire all'utente di selezionare pi¨ file da una directory, impostare il flag OFN_ALLOWMULTISELECT. Per compatibilitÓ con le vecchie applicazioni, l'impostazione predefinita multiple nella finestra di dialogo di selezione utilizza l'interfaccia utente di vecchio stile. Per visualizzare un tipo Esplora risorse multiple nella finestra di dialogo di selezione, Ŕ anche necessario impostare il flag OFN_EXPLORER.

Se l'utente seleziona pi¨ file, il buffer a cui puntato il membro lpstrFile restituisce il percorso della directory corrente seguita dai nomi dei file dei file selezionati. Il membro nFileOffset Ŕ l'offset per il nome del primo file, e non viene utilizzato il membro nFileExtension . La seguente tabella descrive la differenza tra tipo Esplora risorse e finestre di dialogo di vecchio stile a tornare pi¨ nomi di file.

Stile casella di dialogo Descrizione
Finestre di dialogo di tipo Esplora risorse Le stringhe di directory e filename sono NULL separati, con un carattere NULL supplementare dopo l'ultimo filename. Questo formato permette le finestre di dialogo di tipo Esplora risorse restituire i nomi di file lunghi che contengono spazi.
Finestre di dialogo di vecchio stile Le stringhe di directory e il nome del file sono separate da spazi. Per nomi di file con spazi, la funzione utilizza i nomi di file brevi.

╚ possibile utilizzare la FindFirstFile funzione per convertire tra i nomi di file lunghi e brevi.

Rimedio: Inserire il CD-ROM CD di MSDN Library.

Index