Удаление файла с указанием полного пути - почему это работает?

1559
meatspace

Попытка удалить папку в Проводнике не удалась error 0x80070091: the directory is not empty. delиз командной строки администратора выдал ошибку «Отказано в доступе». Разрешения и владение в порядке.

del \\?\c:\path\to\folderудалось. Почему это работает, когда del c:\path\to\folderнет?

РЕДАКТИРОВАТЬ: Длина пути была 29 символов, как в: C:\users\A-AAAAAA\desktop\BBB(фактический формат пути с личной информацией отредактированы - совпадение подсчета символов. BBB является рассматриваемой папки).

1
Что это за файловая система и какую ОС вы используете? SadBunny 9 лет назад 0
@SadBunny NTFS, Windows 7. meatspace 9 лет назад 0

2 ответа на вопрос

2
Kristian

I think the reason the "full path" works, is because Windows might not be viewing it as a folder when accessed with a fully qualified path.

The del command is used for deleting files.

The rd command (remove directory) is used for deleting folders.

If you want to delete a folder run:

rd C:\path\to\folder

If you want to delete a folder tree (including files and subfolders) run:

rd /s C:\path\to\folder

Also, running the command del C:\path\to\folder in command prompt will actually not delete a folder, but rather delete the contents of that folder, so think of it more like an alias for del C:\path\to\folder\*.

Хорошая точка зрения. Я должен был указать, что запрос, возвращаемый `del`, просит подтвердить удаление` .. \ BBB \ * `. К сожалению, я не могу воссоздать эту папку для тестирования `rd`. meatspace 9 лет назад 0
1
SadBunny

It was probably a very long pathname or filename? I never heard of this before, but I googled a bit and apparently your syntax can be used to delete those.

http://ss64.com/nt/del.html:

Undeletable Files Files are sometimes created with the very long filenames or reserved names: CON, AUX, COM1, COM2, COM3, COM4, LPT1, LPT2, LPT3, PRN, NUL To delete these use the syntax: DEL \\.\C:\somedir\LPT1 Alternatively SUBST a drive letter to the folder containing the file. 
Windows не превышал ограничение в 260 символов. См. Https://msdn.microsoft.com/en-us/library/aa365247.aspx. meatspace 9 лет назад 0