Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W MFC najczęstszym sposobem otwierania pliku jest proces dwuetapowy.
Aby otworzyć plik
Utwórz obiekt pliku bez określania ścieżki lub flag uprawnień.
Zazwyczaj tworzy się obiekt pliku, deklarując zmienną CFile na ramce stosu.
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 składowaOpen
ma następujący prototyp: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 klasie
CFile
, więc są one kwalifikowane przedrostkiem "CFile::
", jak w przykładzieCFile::modeRead
. Użyj flagiCFile::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 / Notatka
W tym przykładzie tworzony i otwierany jest plik. Jeśli występują problemy, wywołanie Open
może zwrócić obiekt CFileException
w ostatnim parametrze, jak tutaj pokazano. 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.