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