Рідко зустрічається програму, що не звертається до файлів. Робота з директоріями (папками, в термінології ОС Windows) і файлами - це та область, в якій не всі операції є платформонезавісимость, тому Qt надає свою власну підтримку цих операцій, що складається з наступних класів: Далі.
Клас QFile успадкований від класу QIODevice. У ньому містяться методи для роботи з файлами: відкриття, закриття, читання і запису даних. Створити об'єкт можна, передавши в конструкторі рядок, що містить ім'я файлу. Можна нічого не передавати в конструкторі, а зробити це після створення об'єкта, викликом методу setName (). Наприклад: Далі.
Іноді з додатком може знадобитися створити тимчасовий файл. Це може бути пов'язано, наприклад, з проміжним зберіганням великого обсягу даних або передачею цих даних будь-якої іншої програми. Далі.
Клас QBuffer успадкований від QIODevice, і являє собою емуляцію файлів в пам'яті комп'ютера (memory mapped files). Це дозволяє записувати інформацію в оперативну пам'ять і використовувати об'єкти як звичайні файли (відкривати за допомогою методу open () і закривати методом close ()). За допомогою методів write () і read () можна зчитувати і записувати блоки даних. Можна це так само зробити за допомогою потоків, які будуть розглянуті далі. Розглянемо приклад використання класу QBuffer: Далі.
Різні платформи мають різні способи представлення шляхів. ОС Windows містить букви дисків, наприклад: C: \ Windows \ System. UNIX використовує root, наприклад: / usr / bin. Зверніть увагу, що для поділу імен директорій в обох виставах використовуються різні знаки. Для уявлення директорій в платформонезавісимость формі Qt надає клас QDir. Далі.
За допомогою класу QDir можна отримати вміст зазначеної директорії. При цьому допускається застосовувати різні фільтри, щоб виключити зі списку не цікавить вас файли. Для цих цілей в класі визначено методи entryList () і entryInfoList (). Перший повертає список імен елементів (QStringList), а другий - інформаційний список (QFileInfoList). Якщо вам потрібно дізнатися тільки кількість елементів, що знаходяться в директорії, то просто викличте метод count (). Далі.
Завдання цього класу полягає в наданні інформації про властивості файлу, наприклад: ім'я, розмір, час останньої зміни, права доступу і т. Д. Об'єкт класу QFileInfo створюється передачею в його конструктор шляху до файлу, але можна передавати і об'єкти класу QFile. Далі.
Об'єкти файлів, самі по собі, володіють тільки елементарними методами для читання і запису інформації. Використання потоків робить запис і зчитування файлів більш простим і гнучким. Для файлів, що містять текстову інформацію, слід використовувати клас QTextStream. а для довічних файлів - клас QDataStream. Далі.
Клас QDateStream є гарантом того, що формат, в якому будуть записані дані, залишиться платформонезавісимость і його можна буде вважати і обробити на інших платформах. Це робить клас незамінним для обміну даними по мережі з використанням сокетних з'єднань. Далі.