ID do artigo: 181880 - Última revisão: segunda-feira, 8 de dezembro de 2003 - Revisão: 2.0

PROBLEMA: Erro de "Acesso a um arquivo sem nome foi negado"

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.
Expandir tudo | Recolher tudo

Sintomas

Você obtém o seguinte erro ao chamar CFile::Read():
O acesso a um arquivo sem nome foi negado.
Se executar sob o depurador Microsoft Visual C++, você verá o seguinte erro:
Exceção CFile: informações de erro do sistema operacional accessDenied, arquivo desconhecido, = 5

Causa

Na verdade você está abrindo o arquivo sem acesso de leitura. O seguinte código intuitivamente correto causa o erro:
CFile cf;
   int data;
 
   cf.Open("myfile.dat", CFile::modeRead | CFile::modeWrite);
 
   cf.Write(&data, sizeof(int));
 
   cf.Read(&data, sizeof(int));
				

Resolução

Especifica CFile::modeReadWrite em vez da lógica ou CFile::modeRead do e CFile::modeWrite.

Situação

Esse comportamento é por design.

Referências

Para obter mais informações sobre CFile ou outras classes MFC, consulte a Ajuda on-line do Microsoft Visual C++.

A informação contida neste artigo aplica-se a:
  • Microsoft Visual C++ 4.0 Standard Edition
  • Microsoft Visual C++ 5.0 Enterprise Edition
  • Microsoft Visual C++ 6.0 Enterprise Edition
  • Microsoft Visual C++ 5.0 Professional Edition
  • Microsoft Visual C++ 6.0 Professional Edition
  • Microsoft Visual C++, 32-bit Learning Edition 6.0
Palavras-chave: 
kbmt kbcodegen kberrmsg kbprb KB181880 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 181880  (http://support.microsoft.com/kb/181880/en-us/ )