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