Я занимаюсь разработкой приложения Qt для Windows. Чтобы показать файлы определенной папки, я использую QTreeView вместе с QFileSystemModel. Пока все хорошо, но я столкнулся с очень специфической проблемой, которая сводит меня с ума: пока я работаю с папкой, развернутой в моем приложении, я ничего не могу сделать с ее родительской папкой.
Я создал небольшой проект, чтобы показать эту проблему. Вот как я определяю свой QFileSystemModel и применяю его к моему QTreeView:
QFileSystemModel *myModel = new QFileSystemModel;
myModel->setRootPath(myRootPath);
ui->treeView->setModel(myModel);
Чтобы проиллюстрировать мою проблему, посмотрите это изображение
Хотя «Тестовая папка 2» не раскрыта, я могу делать то, что хочу, «Тестовая папка». Я могу переименовать, переместить или даже удалить через Проводник Windows, и все применяется к моей программе. Однако, когда я раскрываю «Тестовую папку 2», моя «Тестовая папка» внезапно становится недоступной для редактирования. Windows говорит, что папка «открыта в другом приложении».
Я полагаю, что любой может воспроизвести эту проблему с тремя строчками выше, поэтому я не думаю, что это проблема конкретного проекта. Кто-нибудь знает, почему это происходит?
РЕДАКТИРОВАТЬ: Очевидно, это проблема только для Windows. Только что попробовал на Linux, и он работал просто отлично. Это проблема NTFS? Есть идеи?