Russian Qt Forum
Апреля 04, 2025, 11:23
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Общие вопросы
>
QFile::isOpen() == true, но файл не создаётся
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: QFile::isOpen() == true, но файл не создаётся (Прочитано 4701 раз)
__Heaven__
Джедай : наставник для всех
Offline
Сообщений: 2130
QFile::isOpen() == true, но файл не создаётся
«
:
Июля 23, 2015, 17:17 »
Привет друзья!
Писал одну утилитку под себя и наткнулся на такую вещь:
Код
C++ (Qt)
QFile
file
(
"C:
\\
file.txt"
)
;
file
.
open
(
QFile
::
WriteOnly
)
;
if
(
file
.
isOpen
(
)
)
// true
...
Оказалось, что у меня на работе доступ к диску C: закрыт. Почему же isOpen выдаёт true?
Записан
BuRn
Гость
Re: QFile::isOpen() == true, но файл не создаётся
«
Ответ #1 :
Июля 23, 2015, 17:49 »
Цитата: __Heaven__ от Июля 23, 2015, 17:17
Привет друзья!
Писал одну утилитку под себя и наткнулся на такую вещь:
Код
C++ (Qt)
QFile
file
(
"C:
\\
file.txt"
)
;
file
.
open
(
QFile
::
WriteOnly
)
;
if
(
file
.
isOpen
(
)
)
// true
...
Оказалось, что у меня на работе доступ к диску C: закрыт. Почему же isOpen выдаёт true?
Винда умнее чем кажется, ты даже если начнешь сохранять на диск С она тебе выдаст все ок, но файла не будет. Все просто, у нее какая-то виртуальная директория есть, куда он складирует файлы. Почитайте это:
http://delphimaster.net/view/15-1277274062
, я думаю вам поможет
Записан
Alex Custov
Джедай : наставник для всех
Offline
Сообщений: 2063
Re: QFile::isOpen() == true, но файл не создаётся
«
Ответ #2 :
Июля 23, 2015, 17:53 »
Добавлю, что этот virtual storage сделан для совместимости с предыдущими говноверсиями винды.
Записан
__Heaven__
Джедай : наставник для всех
Offline
Сообщений: 2130
Re: QFile::isOpen() == true, но файл не создаётся
«
Ответ #3 :
Июля 23, 2015, 18:30 »
Действительно, умно)))
Спасибо!
Записан
LisandreL
Птица говорун
Offline
Сообщений: 984
Надо улыбаться
Re: QFile::isOpen() == true, но файл не создаётся
«
Ответ #4 :
Июля 24, 2015, 08:56 »
Вам нужен манифест с установленным requestedExecutionLevel.
http://stackoverflow.com/questions/4730053/how-to-disable-virtualstore-for-c-programs
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...