3

Я назвал папку ......... и забыл об этом.

Когда я вернулся к нему, внутри папки ......... есть еще одна папка с именем, которая называется той же (которую я не создал), но не содержит ни одного исходного файла.

Во второй папке ......... находятся все файлы и подпапки, которые я положил изначально (с обычными именами). Однако я не могу получить доступ к этим файлам и подпапкам с помощью проводника Windows или командной строки. В свойствах папки написано, что папка открывается с помощью Windows shell common dll .

Я попытался переместить содержимое и попытался переименовать папку, но в обоих случаях я получаю сообщение об ошибке « Папка открыта в другой программе ». Process Explorer говорит, что ничего не имеет открытой папки.

Все это в Windows 7. У кого-нибудь есть идеи, как это исправить? Я просто хочу получить доступ к файлам и папкам. Я гуглил об этом, но ничего не нашел.

1 ответ1

3

Прежде всего, я покажу всем остальным, как настроить такую среду с помощью командной строки:

  1. Создайте папку с нормальным именем и cd в нее. Предположим, что полное имя этой папки - C:\path\test .
  2. Создать папку с точечным именем в test с помощью md \\?\C:\path\test\.... Интересно, что cmd не позволит вам cd - диск в нем - это просто ставит вас обратно в test Проводник Windows показывает эту папку как содержащую себя, но когда вы переходите на второй слой, ничего не появляется.
  3. Создайте файл в папке с точкой с echo Ah! > ....\a.txt . Windows Explorer показывает этот файл во второй папке с точечным названием (которую мы не создавали!).

Теперь разобрать его и сохранить файлы:

Если точка точка имеет короткое имя

  1. Убедитесь д уверены , что вы cd нормальное название , содержащее папку test в приведенном выше сценарии). Я рекомендую держать Explorer закрытым, чтобы избежать проблем с блокировкой.
  2. Запустите dir /x чтобы получить краткое имя папки с точками. Для меня это в настоящее время 8A9C~1 , но, похоже, он изменится, когда я перезапущу процедуру.
  3. Запустите xcopy 8A9C~1\* . /e чтобы переместить все содержимое странной папки в обычную папку. Вы должны ввести фактическое короткое имя вашей точечной папки.
  4. Убедитесь, что файлы и структура папок не повреждены в обычной папке (type a.txt чтобы получить Ah!).
  5. Очистите папку с точками с помощью del /s /q 8a9c~1 .
  6. Скопируйте папку dot и ее теперь пустые подкаталоги с помощью rd /s /q 8a9c~1 .

Если у папки точек нет короткого имени

  1. Откройте административную командную строку. cd в папку, содержащую папку точек.
  2. Запустите mklink /d normal \\?\C:\path\test\.... для создания символической ссылки с именем normal .
  3. Используйте Windows Explorer, чтобы переместить все содержимое normal (которое указывает на содержимое папки с точками) в разумно названное место.
  4. Используйте Windows Explorer, чтобы удалить пустую normal папку faux.
  5. Вернувшись в командную строку, запустите rd \\?\C:\path\test\.... чтобы удалить папку с точками.

Все ваши файлы теперь в безопасности в папке с обычным именем. В будущем вы можете избежать именования папок только точками.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .