Compartilhar via


CFile::CFile

Constrói e inicializa um objeto CFile.

CFile( ); CFile(    CAtlTransactionManager* pTM ); CFile(    HANDLE hFile  ); CFile(    LPCTSTR lpszFileName,    UINT nOpenFlags  ); CFile(    LPCTSTR lpszFileName,    UINT nOpenFlags,    CAtlTransactionManager* pTM );

Parâmetros

  • hFile
    Handle de um arquivo para anexar ao objeto CFile.

  • lpszFileName
    Caminho relativo ou completo de um arquivo para anexar ao objeto CFile.

  • nOpenFlags
    Combinação bit a bit (OR) das opções de acesso de arquivo do arquivo especificado. Consulte a seção Comentários para obter possíveis opções.

  • pTM
    Ponteiro para objeto CAtlTransactionManager

Comentários

As cinco tabelas a seguir listam as possíveis opções para o parâmetro nOpenFlags.

Escolha apenas uma das opções de modo de acesso de arquivo a seguir. O modo de acesso de arquivo padrão é CFile::modeRead, que é somente leitura.

Valor

Descrição

CFile::modeRead

Solicita acesso somente leitura.

CFile::modeWrite

Solicita acesso somente gravação.

CFile::modeReadWrite

Solicita acesso de leitura e gravação.

Escolha uma das opções de modo de caractere a seguir.

Valor

Descrição

CFile::typeBinary

Define modo binário (usado apenas em classes derivadas).

CFile::typeText

Define modo de texto com processamento especial para retorno de carro (usado apenas em classes derivadas).

CFile::typeUnicode

Define modo Unicode (usado apenas em classes derivadas). O texto é gravado no arquivo em formato Unicode quando o aplicativo é compilado em uma configuração Unicode. Nenhum BOM é gravado no arquivo.

Escolha apenas uma das opções de modo de compartilhamento de arquivo a seguir. O modo de compartilhamento de arquivo padrão é CFile::shareExclusive, que é exclusivo.

Valor

Descrição

CFile::shareDenyNone

Sem restrições de compartilhamento.

CFile::shareDenyRead

Nega acesso de leitura a todos os outros.

CFile::shareDenyWrite

Nega acesso de gravação a todos os outros.

CFile::shareExclusive

Nega acesso de leitura e gravação a todos os outros.

Escolha a primeira ou as duas opções de modo de criação de arquivo a seguir. O modo de criação padrão é CFile::modeNoTruncate, que é abrir existente.

Valor

Descrição

CFile::modeCreate

Cria um novo arquivo se nenhum arquivo existir; se o arquivo já existir, CFileException será gerada.

CFile::modeNoTruncate

Cria um novo arquivo se nenhum arquivo existir; caso contrário, se o arquivo já existir, ele será anexado ao objeto CFile.

Escolha as opções de cache de arquivo conforme descritas a seguir. Por padrão, o sistema usa um esquema de cache de uso geral que não está disponível como opção.

Valor

Descrição

CFile::osNoBuffer

O sistema não usa um cache intermediário para o arquivo. Esta opção cancela as duas opções a seguir.

CFile::osRandomAccess

O cache do arquivo é otimizado para acesso aleatório. Não use essa opção e a opção de varredura sequencial.

CFile::osSequentialScan

O cache do arquivo é otimizado para acesso sequencial. Não use essa opção e a opção de acesso aleatório.

CFile::osWriteThrough

Operações de gravação são realizadas sem atraso.

Escolha a opção de segurança a seguir para impedir que o handle do arquivo seja herdado. Por padrão, qualquer novo processo filho pode usar o handle do arquivo.

Valor

Descrição

CFile::modeNoInherit

Impede qualquer processo filho de usar o handle do arquivo.

O construtor padrão inicializa membros mas não anexa um arquivo ao objeto CFile. Após usar esse construtor, use o método CFile::Open para abrir um arquivo e anexá-lo ao objeto CFile.

O construtor com um parâmetro inicializa membros e anexa um arquivo existente ao objeto CFile.

O construtor com dois parâmetros inicializa membros e tenta abrir o arquivo especificado. Se o construtor abrir o arquivo especificado com sucesso, o arquivo será anexado ao objeto CFile; caso contrário, o construtor lança um ponteiro para um objeto CInvalidArgException. Para obter mais informações sobre como tratar exceções, consulte Exceções.

Se um objeto CFile abrir um arquivo especificado com sucesso, ele fechará esse arquivo automaticamente quando o objeto CFile for destruído; caso contrário, será necessário fechar explicitamente o arquivo após ele não estar mais anexado ao objeto CFile.

Exemplo

O código a seguir mostra como usar um CFile.

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 da hierarquia