Udostępnij za pośrednictwem


Otwieranie plików

W MFC najczęstszym sposobem otwierania pliku jest proces dwuetapowy.

Aby otworzyć plik

  1. Utwórz obiekt pliku bez określania ścieżki lub flag uprawnień.

    Zazwyczaj tworzy się obiekt pliku, deklarując zmienną CFile na ramce stosu.

  2. Wywołaj funkcję Open member dla obiektu pliku, podając ścieżkę i flagi uprawnień.

    Wartość zwracana dla Open parametru będzie niezerowa, jeśli plik został pomyślnie otwarty lub 0, jeśli nie można otworzyć określonego pliku. Funkcja Open składowa jest prototypowana w następujący sposób:

    virtual BOOL Open( LPCTSTR lpszFileName, UINT nOpenFlags, CFileException* pError = NULL );

    Flagi otwierania określają, które uprawnienia, takie jak tylko do odczytu, mają być przeznaczone dla pliku. Możliwe wartości flagi są definiowane jako wyliczone stałe w CFile klasie, więc są one kwalifikowane z wartością "CFile::", jak w elem CFile::modeRead. Użyj flagi CFile::modeCreate , jeśli chcesz utworzyć plik.

W poniższym przykładzie pokazano, jak utworzyć nowy plik z uprawnieniem do odczytu/zapisu (zastępując dowolny poprzedni plik tą samą ścieżką):

TCHAR* pszFileName = _T("c:\\test\\myfile.dat");
CFile myFile;
CFileException fileException;

if ( !myFile.Open( pszFileName, CFile::modeCreate |   
        CFile::modeReadWrite, &fileException ) )
{
   TRACE( _T("Can't open file %s, error = %u\n"),
      pszFileName, fileException.m_cause );
}

Uwaga

W tym przykładzie zostanie utworzony i otwarty plik. Jeśli występują problemy, Open wywołanie może zwrócić CFileException obiekt w ostatnim parametrze, jak pokazano tutaj. Makro TRACE wyświetla zarówno nazwę pliku, jak i kod wskazujący przyczynę niepowodzenia. Funkcję można wywołać AfxThrowFileException , jeśli potrzebujesz bardziej szczegółowego raportowania błędów.

Zobacz też

Klasa CFile
CFile::Open
Pliki