Сегодня, когда я пытался декомпилировать файл .apk с помощью WinRAR, я получил ошибку, и разархивирование прекратилось. После этого, когда я пытаюсь удалить папку, я получаю сообщение об ошибке, что у меня нет владельца папки, даже если я предоставляю разрешение администратора.

Ошибка при удалении папки

Изображение из файлового проводника папки, в которой находится файл

И файл и родительская папка файла на изображении выдает ошибку, когда я пытаюсь удалить его.

Затем я попытался сделать то же самое с помощью cmd в режиме администратора с помощью команды:

рм -д тест

output :: rm: не может отсоединить `test ': не владелец

Я также попробовал следующую команду, чтобы рекурсивно удалить файлы в папке:

тест rm -r

вывод:rm: ПРЕДУПРЕЖДЕНИЕ: круговая структура каталогов. Это почти наверняка означает, что у вас поврежденная файловая система. УВЕДОМИТЕ СВОЮ СИСТЕМУ МЕНЕДЖЕР. Следующие две директории имеют одинаковый номер инода:

test `test/ '

Поэтому я попробовал следующую команду, чтобы удалить рекурсивную структуру файла,

тест rm-rfd

вывод: rm: не может отсоединить `test ': не владелец

Все вышеперечисленные методы, которые я использовал, взяты либо со страницы StackOverflow, либо со страницы Microsoft QnA, но ничего не работает.

Я попробовал все это также в безопасном режиме. Но все равно я получаю ту же ошибку. Дважды я также получил ошибку с кодом ошибки 0x80070091

Изображение с разрешениями на вкладке «Безопасность» окна свойств удаляемой папки

Я уже пытался завладеть папкой с помощью команды takeown.

сдача / тест f / r

Выход:

УСПЕХ: Файл (или папка): «C:\Users\mandar\Desktop\test», теперь принадлежащий пользователю «MANDAR_SADYE\mandar».

УСПЕХ: Файл (или папка): «C:\Users\mandar\Desktop\test\» теперь принадлежит пользователю «MANDAR_SADYE\mandar».

Я перепробовал все возможные решения, которые смог найти, но ничего не помогло. Если у кого-либо есть какие-либо предложения по этому вопросу, пожалуйста, опубликуйте его как ответ или комментарий, как считаете нужным. Заранее спасибо.

4 ответа4

0

Запустите команду chkdsk и посмотрите, найдет ли она ошибки.

Для дальнейшего понимания ошибок, можно прочитать Chkdsk Log в Event Viewer в Windows 10.

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

chkdsk /f

Убедитесь, что у вас есть хорошая резервная копия ваших файлов перед запуском.

0

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

Таким образом, я следовал методу, чтобы открыть папку в другой файловой системе.

  • Я сделал это, удалив его с помощью загрузочного диска Linux (я использовал Kali, но любой другой дистрибутив должен работать хорошо).
  • Вы можете попытаться удалить его, отправив папку в виртуальный ящик или виртуальную машину VMware с Linux, и попробуйте удалить ее.
  • И третий способ - открыть общий доступ к папке в локальной сети и попытаться удалить ее с вашего Android или MAC-устройства, подключенного к сети (помните, что на Android установлено ядро Linux, а на MAC - Unix, поэтому оба должны работать)

Таким образом, я думаю, что проблема с файловой системой Windows NTFS. Как вы можете видеть, за исключением третьего метода, вам нужно найти дополнительную операционную систему в виде загрузочной или виртуальной машины, которой у большинства людей не будет. Так что попробуйте 3-е решение. Если это не сработает, попробуйте решение Harrymc. И даже если это не сработает, вы можете установить виртуальную машину или создать загрузочный перьевой диск и попытаться удалить его.

0

Ваша проблема в том, что у вас есть запись в файловой системе с именем, содержащим только пробел (test\ , обратите внимание на пробел после обратной косой черты). Это технически возможно в NTFS, но совсем не разрешено в Win32, и большинство Windows API не справятся с этим изящно. Они попытаются убрать пробелы с концов имени файла, а затем очень запутываются, когда имени файла больше нет, и могут относиться к нему, как будто вы ссылаетесь на каталог; это происходит, даже если вы используете такой формат, как test\* или " " .

В самой Windows есть два выхода из этого.

  1. Обход пути перевода Win32. Это делается путем добавления префикса полного пути к \\?\ . Это отключает все правила Win32 относительно того, что является допустимым именем файла (например, "не может начинаться или заканчиваться пробелом"), оставляя только гораздо более ограничительный набор правил NTFS (не может содержать \ или : например, ). Обратите внимание, что он также отключает удобные сокращения, такие как использование относительных путей; если вы хотите сделать это, вы должны указать абсолютный путь (C:\Users\mandar\Desktop\test\), и вам нужно будет заключить его в кавычки, чтобы командная строка знала, что вы хотите включить этот последний пробел: del "\\?\C:\Users\mandar\Desktop\test\ " (и да, для этого вам следует использовать cmd.exe ; Powershell игнорирует \?\ и Unix-подобные оболочки, работающие в Windows через MinGW или Cygwin, не используют пути в формате, ожидаемом ядром).
  2. Используйте встроенную подсистему Linux в Windows (которая запускает неизмененные двоичные файлы Linux непосредственно в ядре NT через специальный драйвер). Linux (как вы обнаружили) поддерживает работу с файлами с глупыми именами, такими как и так же WSL, подсистема Windows для Linux. Если вы раньше не использовали WSL, вам нужно установить дистрибутив Linux из магазина приложений Windows (Ubuntu и OpenSUSE доступны и подходят для общего использования, Kali также доступен, если вам нужен специальный дистрибутив на вашем компьютере). Windows box; вы можете установить более одного, если хотите). В bash (или другой оболочке) дистрибутива WSL перейдите к соответствующему каталогу (cd /mnt/c/Users/mandar/Desktop/test ) и затем удалите поврежденный файл (rm ' ' ) или просто весь каталог.
-1

Я нашел исправление, которое работает для меня.

На странице «Дополнительные параметры безопасности» вам нужно перейти в «Администраторы» (с «s» в конце, иначе вы получите ошибки Enum) и нажать «ОК», потому что опция «заменить все дочерние элементы ...» отсутствует.

Затем снова откройте его и повторите то же самое, на этот раз опция «заменить все дочерние элементы присутствует», поэтому поставьте галочку и установите флажок «заменить владельца на ...». Затем нажмите ОК

Теперь вы должны иметь возможность редактировать, чтобы дать разрешение администраторам. Закройте это меню еще раз, и вы сможете удалить.

Я уверен, что это или глюк или что-то в этом роде, но у меня это работает.

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