Compartilhar via


CFile::CFile

O construtor padrão não abre um arquivo mas em vez disso, define m_hFile para CFile::hFileNull.

CFile( );
CFile(
   HANDLE hFile 
);
CFile(
   LPCTSTR lpszFileName,
   UINT nOpenFlags 
);

Parâmetros

  • hFile
    The HFILE retornado de uma telefonar anterior CreateFile, sistema autônomo descrito o Windows SDK.

  • lpszFileName
    Uma seqüência de caracteres que é o caminho para o arquivo desejado.O caminho pode ser relativo ou absoluto.

  • nOpenFlags
    Modo de compartilhamento e acesso.Especifica a ação a ser tomada quando abrir o arquivo.Você pode agrupar opções listadas abaixo, usando o operador bit a bit ou (|) operador.São necessários; permissão de acesso de um e opção de uma partilha o modeCreate and modeNoInherit modos são opcionais.sistema autônomo valores são:

    • CFile::modeCreate   Direciona o construtor para criar um novo arquivo.Se o arquivo já existir, será truncado para comprimento 0.

    • CFile::modeNoTruncate   agrupar esse valor com modeCreate.Se o arquivo que está sendo criado já existir, não será truncado para comprimento 0.Além disso, se o arquivo que está sendo criado já existir, o ponteiro do arquivo subjacente apontará para o início do arquivo.Este sinalizar garante o arquivo seja em aberto, sistema autônomo um arquivo recém-criado ou sistema autônomo um arquivo existente.Isso pode ser útil, por exemplo, ao abrir um arquivo de configurações que pode ou não existir já.Esta opção se aplica a CStdioFile também.

    • CFile::modeRead   Abre o arquivo de somente leitura.

    • CFile::modeReadWrite   Abre o arquivo para leitura e gravação.

    • CFile::modeWrite   Abre o arquivo para gravar apenas.

    • CFile::modeNoInherit   Impede que o arquivo sendo herdado pelos processos filhos.

    • CFile::shareDenyNone   Abre o arquivo sem negar outros processos de leitura ou acesso de gravar para o arquivo.Criar falhará se o arquivo foi aberto no modo de compatibilidade por qualquer Outros processo.

    • CFile::shareDenyRead   Abre o arquivo e nega o acesso de leitura Outros processos para o arquivo.Criar falhará se o arquivo foi aberto no modo de compatibilidade ou acesso de leitura por qualquer Outros processo.

    • CFile::shareDenyWrite   Abre o arquivo e nega o acesso de gravar Outros processos para o arquivo.Criar falhará se o arquivo foi aberto no modo de compatibilidade ou acesso de gravar por qualquer Outros processo.

    • CFile::shareExclusive   Abre o arquivo com o modo exclusivo, negando outros processos tanto a leitura e gravar acesso para o arquivo.Construção falha se o arquivo tiver sido aberto em qualquer Outros modo para acesso de leitura ou gravar, até mesmo pelo processo corrente.

    • CFile::shareCompat   Este sinalizar não está disponível no MFC de 32 bit e 64 bit.Este sinalizar mapeia para CFile::shareExclusive quando usado em CFile::Open.

    • CFile::typeText   Define o modo de texto com processamento especial para pares de return–linefeed de carro (usada em somente as classes derivadas).

    • CFile::typeBinary   Define o modo binário (usado em somente as classes derivadas).

    • **CFile::osNoBuffer   **O sistema abre um arquivo com nenhum cache do sistema.Para obter mais informações, consulte FILE_FLAG_NO_BUFFERING in CreateFile in the Windows SDK.

    • **CFile::osWriteThrough   **O sistema grava por qualquer cache intermediário e vai diretamente para disco.Para obter mais informações, consulte FILE_FLAG_WRITE_THROUGH in CreateFile in the Windows SDK.

    • **CFile::osRandomAccess   **Um arquivo é acessado aleatoriamente.O sistema pode usar isso sistema autônomo uma dica para otimizar o armazenamento em cache de arquivos.

    • **CFile::osSequentialScan   **Um arquivo é acessado seqüencialmente do início ao participante.O sistema pode usar isso sistema autônomo uma dica para otimizar o armazenamento em cache de arquivos.Para obter mais informações, consulte FILE_FLAG_SEQUENTIAL_SCAN in CreateFile in the Windows SDK.

Comentários

Porque esse construtor não lançar uma exceção, não faz sentido usar TENTE/CATCH lógica.Use o em abertofunção de membro e, em seguida, teste diretamente para as condições de exceção.Para obter uma abordagem de estratégia de processamento de exceção, consulte o artigo Exceções.

O construtor com um argumento cria um CFile objeto que corresponde a um arquivo de sistema operacional existente identificado por hFile. Nenhuma verificação é feita o tipo de arquivo ou modo de acesso.Quando o CFile objeto é destruído, o arquivo de sistema operacional não será fechado. Você deve fechar o arquivo você mesmo.

O construtor com dois argumentos cria um CFile objeto e abre o correspondente sistema operacional arquivo com o caminho fornecido. Esse construtor combina as funções de construtor primeiro e o em abertofunção de membro .Ele lançará uma exceção se não houver um erro ao abrir o arquivo.Em geral, isso significa que o erro é irrecuperável e que o usuário deve ser alertado.

Exemplo

Para obter um exemplo usando o construtor padrão, consulte CFile::em aberto.Para obter um exemplo usando o construtor que lança exceções, consulte CATCH.

O construtor HANDLE pode ser usado sistema autônomo no código a seguir, que cria um arquivo chamado C:\MyFile.DAT e grava sistema autônomo caracteres ANSI "É melhor hóquei!":

HANDLE hFile = CreateFile(_T("CFile_File.dat"),
   GENERIC_WRITE, FILE_SHARE_READ,
   NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);

if (hFile == INVALID_HANDLE_VALUE)
{
   AfxMessageBox(_T("Couldn't create the file!"));
}
else
{
   // Attach a CFile object to the handle we have.
   CFile myFile(hFile);

   static const TCHAR sz[] = _T("I love CFile!");

   // write string
   myFile.Write(sz, sizeof(sz));

   // We can call Close() explicitly, but the destructor would have
   // also closed the file for us. Note that there's no need to
   // call the CloseHandle() on the handle returned by the API because
   // MFC will close it for us.
   myFile.Close();

Requisitos

Cabeçalho: afx.h

Consulte também

Referência

Classe CFile

Gráfico de hierarquia

Outros recursos

CFile membros