Вы не можете удалить файл или папку на томе файловой системы NTFS.
Причина 5: имя файла содержит зарезервированное имя в пространстве имен Win32. Если имя файла включает зарезервированное имя (например, "lpt1") в пространстве имен Win32, возможно, вы не сможете удалить файл. Чтобы решить эту проблему, используйте не-Win32 программу для переименования файла. Вы можете использовать инструмент POSIX или любой другой инструмент, который использует соответствующий внутренний синтаксис для использования файла.
Кроме того, вы можете использовать некоторые встроенные команды для обхода типичных проверок зарезервированных имен Win32, если вы используете определенный синтаксис для указания пути к файлу. Например, если вы используете команду Del в Windows XP, вы можете удалить файл с именем "lpt1", если вы укажете полный путь к файлу, используя следующий специальный синтаксис:
del \\?\c:\path_to_file\lpt1
Для получения дополнительной информации об удалении файлов с зарезервированными именами в Windows NT и Windows 2000 щелкните следующий номер статьи, чтобы просмотреть статью в базе знаний Майкрософт:
120716 Как удалить файлы с зарезервированными именами в Windows
Для получения дополнительных сведений об удалении файлов с зарезервированными именами в Windows XP щелкните следующий номер статьи, чтобы просмотреть статью в базе знаний Майкрософт:
315226 Как удалить файлы с зарезервированными именами в Windows XP
Если вы откроете дескриптор файла с помощью типичного механизма Win32 CreateFile, определенные имена файлов зарезервированы для устройств DOS старого стиля. Для обратной совместимости эти имена файлов не разрешены, и их нельзя создать с помощью типичных вызовов файлов Win32. Однако эта проблема не является ограничением NTFS.
Вы можете использовать программу Win32 для обхода типичных проверок имен, которые выполняются при создании (или удалении) файла, используя ту же технику, что вы используете для обхода папок глубже, чем MAX_PATH. Кроме того, некоторые инструменты POSIX не подлежат проверке имен.
Причина 6: имя файла содержит недопустимое имя в пространстве имен Win32. Возможно, вы не сможете удалить файл, если имя файла содержит недопустимое имя (например, имя файла содержит завершающий пробел или завершающий период или файл имя состоит только из пробела). Чтобы решить эту проблему, используйте инструмент, который использует соответствующий внутренний синтаксис для удаления файла. Вы можете использовать "\?\"синтаксис с некоторыми инструментами для работы с этими файлами, например:
del "\\?\c:\path_to_file_that contains a trailing space.txt "
Причина этой проблемы похожа на причину 4. Однако, если вы используете типичный синтаксис Win32 для открытия файла, у которого в конце есть конечные пробелы или конечные периоды, конечные пробелы или периоды удаляются перед открытием фактического файла. Поэтому, если у вас есть два файла в одной папке с именами «AFile.txt» и «AFile.txt» (обратите внимание на пробел после имени файла), если вы пытаетесь открыть второй файл с помощью стандартных вызовов Win32, вы открываете первый файл вместо Аналогично, если у вас есть файл с именем «» (пробел), и вы пытаетесь открыть его с помощью стандартных вызовов Win32, вместо этого вы открываете родительскую папку файла. В этой ситуации, если вы попытаетесь изменить настройки безопасности для этих файлов, вы либо не сможете сделать это, либо неожиданно измените настройки для других файлов. Если это происходит, вы можете подумать, что у вас есть разрешение на файл, который на самом деле имеет ограниченный ACL.