Friday 8 December 2017

Qiodevice opcje binarne


Dokumentacja Qt QFile Klasa 11 statyczne elementy publiczne odziedziczone z QObject Dodatkowe elementy dziedziczone 1 właściwość odziedziczona z publicznej biblioteki QObject 1 odziedziczonej z sygnałów QObject 6 odziedziczonych z sygnałów QIODevice 2 dziedziczonych z chronionych funkcji QObject 3 dziedziczonych z QFileDevice 5 chronionych funkcji odziedziczonych z chronionych funkcji QIODevice 9 odziedziczone z QObject Szczegółowy opis Klasa QFile udostępnia interfejs do odczytu i zapisu do plików. QFile to urządzenie IO do odczytywania i zapisywania plików tekstowych i binarnych oraz zasobów. Plik QFile może być używany samodzielnie lub, wygodniej, za pomocą QTextStream lub QDataStream. Nazwa pliku jest zwykle przekazywana w konstruktorze, ale można ją ustawić w dowolnym momencie za pomocą metody setFileName (). QFile oczekuje, że separator plików będzie niezależny od systemu operacyjnego. Używanie innych separatorów (np.) Nie jest obsługiwane. Możesz sprawdzić istnienie plików używając exist () i usunąć plik przy użyciu remove (). (Bardziej zaawansowane operacje związane z systemem plików są dostarczane przez QFileInfo i QDir.) Rozmiar pliku jest zwracany przez size (). Możesz uzyskać aktualną pozycję pliku za pomocą pos () lub przejść do nowej pozycji pliku za pomocą funkcji seek (). Jeśli dotrzesz do końca pliku, funkcja atEnd () zwraca wartość true. Bezpośrednie czytanie plików Poniższy przykład odczytuje wiersz pliku tekst po linii: Flaga QIODevice :: Text przekazywana do open () mówi Qt, aby konwertuje terminatory linii w stylu Windows (rn) na terminatory w stylu C (n). Domyślnie QFile przyjmuje binarny, tj. Nie wykonuje żadnej konwersji na bajtach przechowywanych w pliku. Używanie strumieni do odczytywania plików Następny przykład używa QTextStream do czytania pliku tekstowego wiersz po linii: QTextStream zajmuje się przekształceniem 8-bitowych danych przechowywanych na dysku w 16-bitowy kod QString w Unicode. Domyślnie zakłada się, że używane jest lokalne 8-bitowe kodowanie użytkownika (np. UTF-8 w większości systemów operacyjnych opartych na Uniksie, zobacz szczegóły QTextCodec :: codecForLocale ()). Można to zmienić za pomocą QTextStream :: setCodec (). Aby napisać tekst, możemy użyć operatora operatorltlt (), który jest przeciążony, aby wziąć QTextStream po lewej i różne typy danych (w tym QString) po prawej: QDataStream jest podobny, w tym można użyć operatoraltlt () do zapisu danych i operatoragtgt (), aby go odczytać. Szczegółowe informacje można znaleźć w dokumentacji klas. Podczas korzystania z QFile. QFileInfo. i QDir, aby uzyskać dostęp do systemu plików za pomocą Qt, możesz użyć nazw plików w Unicode. W systemie Unix te nazwy plików są konwertowane na 8-bitowe kodowanie. Jeśli chcesz używać standardowych API C (ltcstdiogt lub ltiostreamgt) lub interfejsów API specyficznych dla platformy w celu uzyskania dostępu do plików zamiast QFile. można użyć funkcji encodeName () i decodeName () do konwersji między nazwami plików w Unicode i 8-bitowymi nazwami plików. W systemie Unix istnieją specjalne pliki systemowe (np. W proc), dla których size () zawsze zwróci 0, a mimo to nadal możesz odczytać więcej danych z takiego pliku, dane są generowane w bezpośredniej odpowiedzi na to, co wywołujesz czytając ( ). W tym przypadku jednak nie można użyć atEnd () w celu ustalenia, czy jest więcej danych do odczytania (ponieważ atEnd () zwróci wartość true dla pliku, który twierdzi, że ma rozmiar 0). Zamiast tego należy wywoływać funkcję readAll () lub wywoływać read () lub readLine (), dopóki nie będzie można odczytać więcej danych. Następny przykład wykorzystuje QTextStream do czytania procmodułów wiersz po linii: W przeciwieństwie do innych implementacji QIODevice, takich jak QTcpSocket. QFile nie wysyła sygnałów aboutToClose (), bytesWritten () ani readyRead (). Ten szczegół implementacji oznacza, że ​​QFile nie nadaje się do odczytu i zapisu niektórych typów plików, takich jak pliki urządzeń na platformach Unix. Problemy związane z platformą Uprawnienia do plików są obsługiwane w różny sposób w systemach uniksowych i Windows. W katalogu, który nie jest zapisywalny na systemach uniksowych, nie można tworzyć plików. Nie zawsze tak jest w systemie Windows, gdzie na przykład katalog My Documents zwykle nie jest zapisywalny, ale nadal można w nim tworzyć pliki. Qts zrozumienie uprawnień do plików jest ograniczone, co wpływa szczególnie na funkcję QFile :: setPermissions (). W systemie Windows Qt ustawi tylko starszą flagę tylko do odczytu i tylko wtedy, gdy nie zostanie przekazana żadna z flag zapisu. Qt nie manipuluje listami kontroli dostępu (ACL), co powoduje, że ta funkcja jest w większości przypadków bezużyteczna w przypadku woluminów NTFS. Nadal może być użyteczny dla pamięci USB wykorzystujących systemy plików VFAT. Również listy ACL POSIX nie podlegają manipulacji. Dokumentacja typu użytkownika typedef QFile. DecoderFn Jest to typedef dla wskaźnika do funkcji z następującą sygnaturą: QDataStream tak naprawdę nie jest przeznaczony do tworzenia strumieni, które są przenośne w różnych aplikacjach. (Ma być przenośny w różnych wersjach systemu operacyjnego i Qt, ale zawsze jest zużywany przez Qt.) Format nie może być stabilny, więc może działać dzisiaj, ale jutro przerwie. Z dokumentów: format binarny QDataStreams ewoluował od Qt 1.0 i prawdopodobnie będzie się nadal rozwijał, aby odzwierciedlić zmiany wprowadzone w Qt. Podczas wprowadzania lub wysyłania typów złożonych bardzo ważne jest, aby ta sama wersja strumienia (wersja ()) była używana do odczytu i zapisu. Jeśli chcesz udostępnić dane, użyj formatu wyjściowego, który jest przeznaczony do udostępniania, takiego jak XML, Json, lub w prostym przypadku, takim jak ten, po prostu wypisz numer jako ciąg ANSI do pliku tekstowego. Wystarczy podstawić QTextStream dla QDataStream. Dokumentacja QT QFile Klasa 5 chronionych funkcji odziedziczonych z QIODevice 8 chronionych funkcji odziedziczonych po QObject Dodatkowych dziedziczonych członków 1 właściwość odziedziczona z QObject 1, publicznego gniazda odziedziczonego z sygnałów QObject 4 odziedziczonych z sygnału QIODevice 1 odziedziczonego z dziedziczonych funkcji chronionych QObject 5 z QIODevice 8 chronionych funkcji odziedziczonych po QObject Szczegółowy opis Klasa QFile udostępnia interfejs do odczytu i zapisu do plików. QFile to urządzenie IO do odczytywania i zapisywania plików tekstowych i binarnych oraz zasobów. Plik QFile może być używany samodzielnie lub, wygodniej, za pomocą QTextStream lub QDataStream. Nazwa pliku jest zwykle przekazywana w konstruktorze, ale można ją ustawić w dowolnym momencie za pomocą metody setFileName (). QFile oczekuje, że separator plików będzie niezależny od systemu operacyjnego. Używanie innych separatorów (np.) Nie jest obsługiwane. Możesz sprawdzić istnienie plików używając exist () i usunąć plik przy użyciu remove (). (Bardziej zaawansowane operacje związane z systemem plików są dostarczane przez QFileInfo i QDir.) Rozmiar pliku jest zwracany przez size (). Możesz uzyskać aktualną pozycję pliku za pomocą pos () lub przejść do nowej pozycji pliku za pomocą funkcji seek (). Jeśli dotrzesz do końca pliku, funkcja atEnd () zwraca wartość true. Bezpośrednie czytanie plików Poniższy przykład odczytuje wiersz pliku tekst po linii: Flaga QIODevice :: Text przekazywana do open () mówi Qt, aby konwertuje terminatory linii w stylu Windows (rn) na terminatory w stylu C (n). Domyślnie QFile przyjmuje binarny, tj. Nie wykonuje żadnej konwersji na bajtach przechowywanych w pliku. Używanie strumieni do odczytywania plików Następny przykład wykorzystuje QTextStream do czytania pliku tekstowego wiersz po linii: QTextStream zajmuje się przekształceniem 8-bitowych danych przechowywanych na dysku w 16-bitowy kod QString w formacie Unicode. Domyślnie zakłada się, że używane jest lokalne 8-bitowe kodowanie użytkownika (np. ISO 8859-1 dla większości krajów europejskich, zobacz szczegóły QTextCodec :: codecForLocale ()). Można to zmienić za pomocą metody setCodec (). Aby napisać tekst, możemy użyć operatora operatorltlt (), który jest przeciążony, aby wziąć QTextStream po lewej i różne typy danych (w tym QString) po prawej: QDataStream jest podobny, w tym można użyć operatoraltlt () do zapisu danych i operatoragtgt (), aby go odczytać. Szczegółowe informacje można znaleźć w dokumentacji klas. Podczas korzystania z QFile. QFileInfo. i QDir, aby uzyskać dostęp do systemu plików za pomocą Qt, możesz użyć nazw plików w Unicode. W systemie Unix te nazwy plików są konwertowane na 8-bitowe kodowanie. Jeśli chcesz używać standardowych API C (ltcstdiogt lub ltiostreamgt) lub interfejsów API specyficznych dla platformy w celu uzyskania dostępu do plików zamiast QFile. można użyć funkcji encodeName () i decodeName () do konwersji między nazwami plików w Unicode i 8-bitowymi nazwami plików. W systemie Unix istnieje kilka specjalnych plików systemowych (np. W proc), dla których size () zawsze zwróci 0, ale możesz nadal móc odczytać więcej danych z takiego pliku, dane są generowane w bezpośredniej odpowiedzi na twoje wywołania read ( ). W tym przypadku jednak nie można użyć atEnd () w celu ustalenia, czy jest więcej danych do odczytania (ponieważ atEnd () zwróci wartość true dla pliku, który twierdzi, że ma rozmiar 0). Zamiast tego należy wywoływać funkcję readAll () lub wywoływać read () lub readLine (), dopóki nie będzie można odczytać więcej danych. Następny przykład wykorzystuje QTextStream do czytania procmodułów wiersz po linii: W przeciwieństwie do innych implementacji QIODevice, takich jak QTcpSocket. QFile nie wysyła sygnałów aboutToClose (), bytesWritten () ani readyRead (). Ten szczegół implementacji oznacza, że ​​QFile nie nadaje się do odczytu i zapisu niektórych typów plików, takich jak pliki urządzeń na platformach Unix. Problemy związane z platformą Uprawnienia do plików są obsługiwane w różny sposób w systemie LinuxMac OS X i Windows. W nieopisywalnym katalogu w systemie Linux nie można tworzyć plików. Nie zawsze tak jest w systemie Windows, gdzie na przykład katalog My Documents zwykle nie jest zapisywalny, ale nadal można w nim tworzyć pliki. Dokumentacja typu użytkownika typedef QFile. DecoderFn Jest to typedef dla wskaźnika do funkcji z następującą sygnaturą: Plik może być wykonywany przez każdego. Uwaga: Ze względu na różnice na platformach obsługiwanych przez Qt semantyka ReadUser, WriteUser i ExeUser zależą od platformy: w systemie Unix zwracane są prawa właściciela pliku, a w systemie Windows prawa bieżącego użytkownika są zwracane. To zachowanie może się zmienić w przyszłej wersji Qt. Zauważ, że Qt nie sprawdza domyślnie uprawnień w systemach plików NTFS, ponieważ może to znacznie zmniejszyć wydajność obsługi plików. Możliwe jest wymuszenie sprawdzania uprawnień w systemie plików NTFS przez włączenie następującego kodu do źródła: Sprawdzanie uprawnień jest następnie włączane i wyłączane przez zwiększanie i zmniejszanie qtntfspermissionlookup o 1. Typ uprawnień jest typedef dla QFlags ltPermissiongt. Przechowuje kombinację LUB wartości uprawnień. typedef QFile. PermissionSpec Członek Funkcja Dokumentacja QFile. QFile (const QString amp name) Konstruuje nowy obiekt pliku, który reprezentuje plik o podanej nazwie. QFile. QFile (rodzic QObject) Konstruuje nowy obiekt pliku z danym rodzicem. QFile. QFile (stała nazwa wzmacniacza QString, rodzic QObject) Konstruuje nowy obiekt pliku z danym obiektem nadrzędnym, który reprezentuje plik o określonej nazwie. Niszczy obiekt pliku, zamykając go, jeśli to konieczne. virtual bool QFile. atEnd () const Zwraca wartość true, jeśli został osiągnięty koniec pliku, w przeciwnym razie zwraca false. Dla zwykłych pustych plików na Uniksie (np. W proc), funkcja zwraca wartość true, ponieważ system plików zgłasza, że ​​rozmiar takiego pliku wynosi 0. Dlatego nie powinieneś polegać na atEnd () podczas odczytu danych z takiego pliku , ale raczej wywołaj read (), dopóki nie będzie można odczytać więcej danych. virtual void QFile. close () Wywołuje QFile :: flush () i zamyka plik. Błędy z koloru są ignorowane. bool QFile. copy (const QString amp newName) Kopiuje plik aktualnie określony przez fileName () do pliku o nazwie newName. Zwraca true, jeśli się powiedzie, w przeciwnym razie zwraca false. Zauważ, że jeśli plik o nazwie newName już istnieje, funkcja copy () zwraca wartość false (tzn. Plik QFile nie zastąpi go). Plik źródłowy zostanie zamknięty przed skopiowaniem. static bool QFile. copy (const QString amp nazwa_pliku const QString amp newName) Jest to funkcja przeciążona. Kopiuje plik fileName do newName. Zwraca true, jeśli się powiedzie, w przeciwnym razie zwraca false. Jeśli plik o nazwie newName już istnieje, funkcja copy () zwraca wartość false (tzn. Plik QFile nie zastąpi go). static QString QFile. decodeName (const QByteArray amp localFileName) Działa to odwrotnie w QFile :: encodeName () przy użyciu parametru localFileName. static QString QFile. decodeName (const char localFileName) Jest to funkcja przeciążona. Zwraca wersję Unicode danego parametru nazwa_lokalna. Szczegółowe informacje zawiera sekcja encodeName (). statyczny QByteArray QFile. encodeName (const QString amp fileName) Domyślnie ta funkcja konwertuje fileName na lokalne 8-bitowe kodowanie określone przez locale użytkowników. Jest to wystarczające dla nazw plików, które wybiera użytkownik. Nazwy plików zakodowane na stałe w aplikacji powinny używać tylko 7-bitowych znaków ASCII. FileError QFile. error () const Zwraca status błędu pliku. Status urządzenia IO zwraca kod błędu. Na przykład, jeśli open () zwraca wartość false lub operacja readwrite zwraca -1, tę funkcję można wywołać, aby znaleźć przyczynę niepowodzenia operacji. static bool QFile. exists (const QString amp nazwa_pliku) Zwraca wartość true, jeśli plik określony przez fileName istnieje, w przeciwnym razie zwraca false. bool QFile. exists () const Jest to funkcja przeciążona. Zwraca true, jeśli plik określony przez fileName () istnieje, w przeciwnym razie zwraca false. QString QFile. fileName () const Zwraca nazwę ustawioną przez setFileName () lub konstruktorów QFile. bool QFile. flush () Opróżnia wszystkie zbuforowane dane do pliku. Zwraca true, jeśli się powiedzie, w przeciwnym razie zwraca false. int QFile. handle () const Zwraca uchwyt pliku pliku. Jest to niewielka dodatnia liczba całkowita, odpowiednia do użycia z funkcjami biblioteki C, takimi jak fdopen () i fcntl (). W systemach, które używają deskryptorów plików dla gniazd (tj. Systemów uniksowych, ale nie Windows), uchwyt może być również używany z QSocketNotifier. Jeśli plik nie jest otwarty lub wystąpił błąd, funkcja handle () zwraca wartość -1. Ta funkcja nie jest obsługiwana w systemie Windows CE. W systemie Symbian funkcja zwraca wartość -1, jeśli plik został otwarty w normalny sposób, ponieważ pliki macierzyste systemu Symbian OS nie pasują do int i są niezgodne z funkcjami biblioteki C, w których uchwyt byłby używany. Jeśli plik został otwarty przy użyciu przeciążeń, które pobierają deskryptor pliku uchwytów biblioteki biblioteki C, ta funkcja zwraca ten sam uchwyt. virtual bool QFile. isSequential () const Zwraca wartość true, jeśli plik może być manipulowany tylko sekwencyjnie, w przeciwnym razie zwraca false. Większość plików obsługuje dostęp losowy, ale niektóre specjalne pliki mogą nie być. bool QFile. link (const QString amp linkName) Tworzy link o nazwie linkName, który wskazuje na plik aktualnie określony przez fileName (). To, co jest linkiem, zależy od podstawowego systemu plików (może to być skrót w systemie Windows lub link symboliczny w systemie Unix). Zwraca true, jeśli się powiedzie, w przeciwnym razie zwraca false. Ta funkcja nie zastąpi już istniejącej jednostki w systemie plików w tym przypadku, link () zwróci false i ustawi error (), aby zwrócić RenameError. Uwaga: Aby utworzyć poprawny link w systemie Windows, parametr linkName musi mieć rozszerzenie. lnk. Uwaga: system plików Symbian nie obsługuje łączy. static bool QFile. link (const QString amp nazwa_pliku const QString amp nazwa_linii) Jest to funkcja przeciążona. Tworzy łącze o nazwie linkName, które wskazuje plik fileName. To, co jest linkiem, zależy od podstawowego systemu plików (może to być skrót w systemie Windows lub link symboliczny w systemie Unix). Zwraca true, jeśli się powiedzie, w przeciwnym razie zwraca false. uchar QFile. map (wielkość qint64, rozmiar qint64, flagi MemoryMapFlags, NoOptions) Mapuje rozmiar bajtów pliku do pamięci zaczynając od offsetu. Plik powinien być otwarty, aby mapa mogła się powieść, ale plik nie musi pozostać otwarty po mapowaniu pamięci. Gdy plik QFile zostanie zniszczony lub nowy plik zostanie otwarty z tym obiektem, wszystkie mapy, które nie zostały usunięte, będą automatycznie usuwane z mapy. Wszelkie opcje mapowania można przekazywać za pomocą flag. Zwraca wskaźnik do pamięci lub 0, jeśli wystąpił błąd. Uwaga: W systemie Windows CE 5.0 plik zostanie zamknięty przed wystąpieniem mapowania. Ta funkcja została wprowadzona w Qt 4.4. virtual bool QFile. open (tryb OpenMode) Otwiera plik w trybie OpenMode. zwracanie wartości true, jeśli się powiedzie, w przeciwnym razie false. Uwaga: W trybie WriteOnly lub ReadWrite, jeśli odpowiedni plik jeszcze nie istnieje, funkcja ta spróbuje utworzyć nowy plik przed jego otwarciem. bool QFile. open (FILE fh. Tryb OpenMode) Jest to funkcja przeciążona. Otwiera istniejący uchwyt pliku fh w danym trybie. Zwraca true, jeśli się powiedzie, w przeciwnym razie zwraca false. Kiedy QFile jest otwierany za pomocą tej funkcji, close () faktycznie nie zamyka pliku, ale tylko go opróżnia. Jeśli fh nie odnosi się do zwykłego pliku, np. to jest stdin. stdout. lub stderr. możesz nie być w stanie szukać (). size () zwraca 0 w tych przypadkach. Zobacz QIODevice :: isSequential (), aby uzyskać więcej informacji. Ponieważ ta funkcja otwiera plik bez określania nazwy pliku, nie można używać tego pliku QFile z QFileInfo. Uwaga: W przypadku systemu Windows CE może nie być możliwe wywołanie resize (). Uwaga: platforma Windows fh musi być otwarta w trybie binarnym (tzn. Łańcuch trybu musi zawierać b, tak jak w przypadku rb lub wb) podczas uzyskiwania dostępu do plików i innych urządzeń dostępu losowego. Qt przetłumaczy znaki końca linii, jeśli przełączysz QIODevice :: Text to mode. Urządzenie to nie ma wpływu na urządzenia sekwencyjne, takie jak stdin i stdout. Aby korzystać ze strumieni stdin, stdout i stderr z konsoli, musisz włączyć obsługę aplikacji konsolowych. Aby to zrobić, dodaj następującą deklarację do pliku projektu aplikacji: bool QFile. open (FILE fh. Tryb OpenMode. FileHandleFlags handleFlags) Jest to przeciążona funkcja. Otwiera istniejący uchwyt pliku fh w danym trybie. Zwraca true, jeśli się powiedzie, w przeciwnym razie zwraca false. Gdy plik QFile jest otwierany za pomocą tej funkcji, zachowanie metody close () jest kontrolowane przez flagę AutoCloseHandle. Jeśli określono AutoCloseHandle, a ta funkcja się powiedzie, wywołanie metody close () zamyka przyjęty uchwyt. W przeciwnym razie close () faktycznie nie zamyka pliku, ale tylko go opróżnia. Jeśli fh nie odnosi się do zwykłego pliku, np. to jest stdin. stdout. lub stderr. możesz nie być w stanie szukać (). size () zwraca 0 w tych przypadkach. Zobacz QIODevice :: isSequential (), aby uzyskać więcej informacji. Ponieważ ta funkcja otwiera plik bez określania nazwy pliku, nie można używać tego pliku QFile z QFileInfo. Uwaga: W przypadku systemu Windows CE może nie być możliwe wywołanie resize (). Uwaga: platforma Windows fh musi być otwarta w trybie binarnym (tzn. Łańcuch trybu musi zawierać b, tak jak w przypadku rb lub wb) podczas uzyskiwania dostępu do plików i innych urządzeń dostępu losowego. Qt przetłumaczy znaki końca linii, jeśli przełączysz QIODevice :: Text to mode. Urządzenie to nie ma wpływu na urządzenia sekwencyjne, takie jak stdin i stdout. Aby korzystać ze strumieni stdin, stdout i stderr z konsoli, musisz włączyć obsługę aplikacji konsolowych. Aby to zrobić, dodaj następującą deklarację do pliku projektu aplikacji: bool QFile. open (tryb int fd. OpenMode) Jest to funkcja przeciążona. Otwiera istniejący deskryptor pliku fd w danym trybie. Zwraca true, jeśli się powiedzie, w przeciwnym razie zwraca false. Kiedy plik QFile jest otwierany za pomocą tej funkcji, close () faktycznie nie zamyka pliku. Plik QFile, który jest otwierany za pomocą tej funkcji, jest automatycznie ustawiony na tryb surowy, co oznacza, że ​​funkcje wejścia do pliku są wolne. Jeśli napotkasz problemy z wydajnością, powinieneś spróbować użyć jednej z innych otwartych funkcji. Ostrzeżenie: Jeśli fd nie jest zwykłym plikiem, np. Jest 0 (stdin), 1 (stdout) lub 2 (stderr), możesz nie być w stanie szukać (). W takich przypadkach size () zwraca 0. Zobacz QIODevice :: isSequential (), aby uzyskać więcej informacji. Ostrzeżenie: W przypadku systemu Windows CE może nie być możliwe wywołanie funkcji seek (), setSize (), fileTime (). size () zwraca 0. Ostrzeżenie: Ponieważ ta funkcja otwiera plik bez określenia nazwy pliku, nie można używać tego pliku QFile z QFileInfo. bool QFile. open (tryb int fd, tryb OpenMode, FileHandleFlags handleFlags) Jest to funkcja przeciążona. Otwiera istniejący deskryptor pliku fd w danym trybie. Zwraca true, jeśli się powiedzie, w przeciwnym razie zwraca false. Kiedy QFile jest otwierane za pomocą tej funkcji, zachowanie metody close () jest kontrolowane przez argument handleFlags. Jeśli określono AutoCloseHandle, a ta funkcja się powiedzie, wywołanie metody close () zamyka przyjęty uchwyt. W przeciwnym razie close () faktycznie nie zamyka pliku, ale tylko go opróżnia. Plik QFile, który jest otwierany za pomocą tej funkcji, jest automatycznie ustawiony na tryb surowy, co oznacza, że ​​funkcje wejścia do pliku są wolne. Jeśli napotkasz problemy z wydajnością, powinieneś spróbować użyć jednej z innych otwartych funkcji. Ostrzeżenie: Jeśli fd nie jest zwykłym plikiem, np. Jest 0 (stdin), 1 (stdout) lub 2 (stderr), możesz nie być w stanie szukać (). W takich przypadkach size () zwraca 0. Zobacz QIODevice :: isSequential (), aby uzyskać więcej informacji. Ostrzeżenie: W przypadku systemu Windows CE może nie być możliwe wywołanie funkcji seek (), setSize (), fileTime (). size () zwraca 0. Ostrzeżenie: Ponieważ ta funkcja otwiera plik bez określenia nazwy pliku, nie można używać tego pliku QFile z QFileInfo. bool QFile. open (const RFile f. tryb OpenMode. FileHandleFlags handleFlags DontCloseHandle) Jest to przeciążona funkcja. Otwiera istniejący obiekt pliku f w danym trybie. Zwraca true, jeśli się powiedzie, w przeciwnym razie zwraca false. Kiedy QFile jest otwierane za pomocą tej funkcji, zachowanie metody close () jest kontrolowane przez argument handleFlags. Jeśli określono AutoCloseHandle, a ta funkcja się powiedzie, wywołanie metody close () zamyka przyjęty uchwyt. W przeciwnym razie close () faktycznie nie zamyka pliku, ale tylko go opróżnia. Ostrzeżenie: Jeśli uchwyt pliku jest adoptowany z innego procesu, możesz nie móc używać tego pliku QFile z QFileInfo. Uprawnienia QFile. permissions () const Zwraca kompletną kombinację OR-ed razem QFile :: Permission dla pliku. statyczne uprawnienia QFile. uprawnienia (const QString amp nazwa_pliku) Jest to funkcja przeciążona. Zwraca kompletną kombinację OR-ed razem QFile :: Permission dla fileName. wirtualny qint64 QFile. pos () const wirtualnie chroniony qint64 QFile. readData (char dane. qint64 len) wirtualny chroniony qint64 QFile. readLineData (dane char. qint64 maxlen) bool QFile. remove () Usuwa plik określony przez fileName (). Zwraca true, jeśli się powiedzie, w przeciwnym razie zwraca false. Plik zostanie zamknięty przed jego usunięciem. static bool QFile. remove (const QString amp fileName) Jest to funkcja przeciążona. Usuwa plik określony przez podaną właściwość fileName. Zwraca true, jeśli się powiedzie, w przeciwnym razie zwraca false. bool QFile. rename (const QString amp newName) Zmienia nazwę pliku aktualnie określonego przez fileName () na newName. Zwraca true, jeśli się powiedzie, w przeciwnym razie zwraca false. Jeśli plik o nazwie newName już istnieje, rename () zwraca false (np. QFile nie zastąpi go). Plik jest zamknięty przed zmianą nazwy. static bool QFile. zmień nazwę (const QString amp oldName const QString amp newName) Jest to funkcja przeciążona. Zmienia nazwę pliku oldName na newName. Zwraca true, jeśli się powiedzie, w przeciwnym razie zwraca false. Jeśli plik o nazwie newName już istnieje, rename () zwraca false (np. QFile nie zastąpi go). bool QFile. resize (qint64 sz) Ustawia rozmiar pliku (w bajtach) sz. Zwraca true, jeśli plik, jeśli zmiana rozmiaru powiedzie się false w przeciwnym razie. Jeśli sz jest większy niż aktualnie plik, to nowe bajty zostaną ustawione na 0, jeśli sz jest mniejsze, plik jest po prostu obcięty. static bool QFile. resize (const QString amp nazwa_pliku. qint64 sz) Jest to funkcja przeciążona. Ustawia parametr fileName na rozmiar (w bajtach) sz. Zwraca true, jeśli plik, jeśli zmiana rozmiaru powiedzie się false w przeciwnym razie. Jeśli sz jest większy od fileName, to obecnie nowe bajty zostaną ustawione na 0, jeśli sz jest mniejsze, plik jest po prostu obcięty. virtual bool QFile. seek (qint64 pos) Dla urządzeń o dostępie losowym ta funkcja ustawia bieżącą pozycję na pos. zwracanie wartości true w przypadku powodzenia lub false w przypadku wystąpienia błędu. W przypadku urządzeń sekwencyjnych domyślnym działaniem jest nie robić nic i zwracać fałsz. Szukanie poza końcem pliku: Jeśli pozycja znajduje się poza końcem pliku, wówczas seek () nie powinien natychmiast rozszerzać pliku. Jeśli zapis zostanie wykonany na tej pozycji, plik zostanie przedłużony. Zawartość pliku między poprzednim plikiem a nowo zapisanymi danymi jest UNDEFINED i różni się między platformami i systemami plików. static void QFile. setDecodingFunction (funkcja DecoderFn) Ustawia funkcję dekodowania 8-bitowych nazw plików. Ustawienie domyślne wykorzystuje 8-bitowe kodowanie specyficzne dla lokalizacji. Ostrzeżenie: ta funkcja nie jest powtórna. static void QFile. setEncodingFunction (Funkcja EncoderFn) Ustawia funkcję kodowania nazw plików w Unicode. Domyślne kodowanie w 8-bitowym kodowaniu specyficznym dla ustawień regionalnych. Ostrzeżenie: ta funkcja nie jest powtórna. void QFile. setFileName (const QString amp name) Ustawia nazwę pliku. Nazwa może nie mieć ścieżki, ścieżki względnej lub ścieżki bezwzględnej. Nie wywołuj tej funkcji, jeśli plik został już otwarty. Jeśli nazwa pliku nie ma ścieżki lub ścieżki względnej, używana ścieżka będzie ścieżką katalogu bieżącego aplikacji w momencie wywołania metody open (). Zwróć uwagę, że separator katalogu działa dla wszystkich systemów operacyjnych obsługiwanych przez Qt. bool QFile. setPermissions (Uprawnienia Permissions) Ustawia uprawnienia dla pliku na określone uprawnienia. Zwraca true, jeśli się powiodło, lub false, jeśli uprawnień nie można zmienić. static bool QFile. setPermissions (const QString amp nazwa_pliku. Uprawnienia Permissions) Jest to funkcja przeciążona. Ustawia uprawnienia dla fileName file na uprawnienia. wirtualny qint64 QFile. size () const Zwraca rozmiar pliku. W przypadku zwykłych pustych plików w systemie Unix (na przykład w proc), funkcja zwraca 0 zawartość takiego pliku jest generowana na żądanie w odpowiedzi na wywołanie read (). static QString QFile. symLinkTarget (const QString amp nazwa_pliku) Zwraca bezwzględną ścieżkę do pliku lub katalogu, do którego odnosi się dowiązanie symboliczne (lub skrót w systemie Windows) określony przez parametr nazwa_pliku. lub zwraca pusty łańcuch, jeśli nazwa_pliku nie odpowiada dowiązaniu symbolicznemu. Ta nazwa może nie reprezentować istniejącego pliku, jest tylko łańcuchem znaków. QFile :: exists () zwraca wartość true, jeśli dowiązanie symboliczne wskazuje na istniejący plik. Ta funkcja została wprowadzona w Qt 4.2. QString QFile. symLinkTarget () const Jest to funkcja przeciążona. Zwraca bezwzględną ścieżkę do pliku lub katalogu, do którego wskazuje dowiązanie symboliczne (lub skrót w systemie Windows), lub pusty ciąg znaków, jeśli obiekt nie jest dowiązaniem symbolicznym. Ta nazwa może nie reprezentować istniejącego pliku, jest tylko łańcuchem znaków. QFile :: exists () zwraca wartość true, jeśli dowiązanie symboliczne wskazuje na istniejący plik. Ta funkcja została wprowadzona w Qt 4.2. bool QFile. unmap (adres uchar) Odmusza adres pamięci. Zwraca wartość true, jeśli unmap powiedzie się false w przeciwnym razie. Ta funkcja została wprowadzona w Qt 4.4.

No comments:

Post a Comment