Artigo: 181880 - Última revisão: segunda-feira, 8 de Dezembro de 2003 - Revisão: 2.0

PROBLEMA: Erro de "Foi negado o acesso a um ficheiro sem nome"

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 | Reduzir tudo

Sintomas

Obtém o seguinte erro ao chamar CFile::Read():
Um ficheiro sem nome o acesso foi negado.
Se executado o depurador Microsoft Visual C++, verá o seguinte erro:
Excepção CFile: informações de erro OS accessDenied, ficheiro desconhecido, = 5

Causa

Na realidade está a abrir o ficheiro sem acesso de leitura. O seguinte código intuitively correcto faz com que 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

Especificar CFile::modeReadWrite em vez dos ou de CFile::modeRead e CFile::modeWrite lógico.

Ponto Da Situação

Este comportamento ocorre por predefinição.

Referências

Para obter mais informações sobre outras classes MFC ou CFile, consulte a ajuda online 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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes 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/ )