Невозможно удалить каталог с плохим именем, случайно созданный Qt в Windows 10

#windows #qt #qdir

Вопрос:

Я создал каталог, используя QDir , но в конце у данного имени было две точки, Qt создал этот каталог, хотя его неправильное название, и теперь моя ОС Windows 10 не может работать с этим недопустимым каталогом.

Я не могу сделать с ним никакой операции. Я сделал это:

  • запуск chkdsk с фиксирующими флагами, …
  • запустите проверку дисковой утилиты в свойствах диска
  • попытка удалить его из командной строки в cmd и powershell
  • попытка удалить каталог с помощью QDir

Что мне делать?

введите описание изображения здесь

Ответ №1:

Попробуй

 RemoveDirectoryW(L"\\?\C:\full\path\to\dir..");
 

Пояснение: помимо включения обработки длинного пути, как описано в документации, \? префикс обходит обработку пути Win32, передавая путь непосредственно в NT API, чтобы он шел непосредственно в ядро NT.

Убедитесь , что вы используете RemoveDirectoryW не RemoveDirectoryA полный путь , а косые черты в обратном '\' направлении (нет / ). Из-за изменения C в строковых литералах \?C:path становится "\\?\C:\path" .