Nomes de arquivos e diretórios

As informações nesta seção se aplica ao estilo do Explorer e caixas de diálogo Abrir e Salvar como de estilo antigo.

Antes de chamar o GetOpenFileName ou GetSaveFileName funções, lpstrFile membro das OPENFILENAME estrutura deve apontar para o buffer para receber o nome do arquivo. O nMaxFile membro deve especificar o tamanho, em bytes (versão ANSI) ou 16-bit caracteres (versão Unicode), da lpstrFile reserva.

Se o usuário especifica um nome de arquivo e clica no botão OK , a caixa de diálogo copia a unidade selecionada, o diretório e o nome do arquivo para o buffer lpstrFile . A função também define o nFileOffset e nFileExtension Membros para os deslocamentos, em bytes (versão ANSI) ou 16-bit caracteres (versão Unicode), desde o início do buffer para o nome do arquivo e a extensão de nome de arquivo, respectivamente.

Para recuperar apenas o nome do arquivo e extensão, defina o membro de lpstrFileTitle para apontar para uma reserva e definir o membro nMaxFileTitle para o tamanho, em bytes (versão ANSI) ou 16-bit caracteres (versão Unicode), da reserva. Como alternativa, você pode passar a lpstrFile reserva em uma chamada para a função GetFileTitle para obter o nome para exibição do arquivo selecionado. Observe, no entanto, que o nome do arquivo que GetFileTitle retorna inclui uma extensão só se for a preferência do usuário para exibir nomes de arquivos.

A caixa de diálogo usa o diretório atual para o processo de chamada como o diretório inicial do qual deseja exibir os arquivos e diretórios. Uso o GetCurrentDirectory ou SetCurrentDirectory funções para obter ou alterar o directório actual. Para especificar um diretório inicial diferente sem alterar o diretório atual, use o membro lpstrInitialDir para especificar o nome de um diretório. A caixa de diálogo muda automaticamente seu diretório atual quando o usuário seleciona um diretório ou unidade diferente. Para impedir que a caixa de diálogo Alterar seu diretório atual, defina o sinalizador OFN_NOCHANGEDIR. Este sinalizador não impede que o usuário alterar diretórios para localizar um arquivo.

Para especificar uma extensão de nome de arquivo padrão, use o membro lpstrDefExt . Se o usuário especifica um nome de arquivo que não tem uma extensão, a caixa de diálogo adiciona a extensão padrão. Se você especificar uma extensão padrão e o usuário especifica um nome de arquivo com uma extensão diferente, a caixa de diálogo define o OFN_EXTENSIONDIFFERENT sinalizador.

Permitir que o usuário selecionar mais de um arquivo de um diretório, defina o Sinalizar de OFN_ALLOWMULTISELECT. Para compatibilidade com aplicativos mais antigos, o padrão caixa de diálogo de seleção de Múltiplo usa a interface do usuário de estilo antigo. Para exibir um Explorer-estilo caixa de diálogo de seleção de múltiplo, você também deve definir o Sinalizar OFN_EXPLORER.

Se o usuário selecionar mais de um arquivo, a reserva apontado pelo lpstrFile membro retorna o caminho para o diretório atual seguido por nomes de arquivo dos arquivos selecionados. O membro nFileOffset é o deslocamento para o primeiro nome de arquivo, e o membro de nFileExtension não é usado. A tabela a seguir descreve a diferença entre o estilo do Explorer e caixas de diálogo do estilo antigo no retornando Múltiplo nomes de arquivo.

Estilo da caixa de diálogo Descrição
Caixas de diálogo do estilo do Explorer As seqüências de caracteres de diretório e nome de arquivo são NULL separado, com um caractere nulo extra após o último nome do arquivo. Este formato permite que as caixas de diálogo do estilo do Explorer retornar nomes de arquivo longos que contêm espaços.
Caixas de diálogo de estilo antigo As seqüências de caracteres de diretório e nome de arquivo são separadas por espaços. Para nomes de arquivo com espaços, a função usa nomes de arquivo curtos.

Você pode usar o FindFirstFile função para converter entre nomes de arquivo longos e curtos.

Index