Это очень похоже на проблему с этим QA ( как я могу удалить файл, который "не существует" ), за исключением того, что я работаю на компьютере полностью Windows, тогда как OP в этом вопросе был SSHing к NAS под управлением Linux.

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

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

Снимок экрана: сообщение об ошибке "Элемент не найден"

  • Файл существует на локальном томе (твердотельный накопитель Samsung PCI-Express NVMe)
  • Том отформатирован в NTFS 3.1 под управлением Windows Server 2016
  • Файл появляется в Windows Explorer и dir (см. Скриншот выше)
  • Попытка выполнить любую операцию с файлом в проводнике Windows, включая Move, Rename, Delete и Shift+Delete, приводит к этому сообщению об ошибке:

    Предмет не найден
    Не удалось найти этот предмет
    Это больше не находится в C:\git\redacted\
    Проверьте местоположение элемента и попробуйте снова.

    DemoServiceClient.cs ~ WIP
    Тип: Файл
    Размер: 8,35 КБ
    Дата изменения: 2017-12-14 12:30

    [Попробуйте еще раз] [Отмена]

  • Диалог свойств файла пуст:

  • На вкладке «Безопасность» диалогового окна «Свойства файла» отображается

    Запрашиваемая информация о безопасности либо недоступна, либо не может быть отображена

  • Общая длина имени файла составляет 130 символов, в пределах MAX_PATH (260 символов)

  • Файл появляется в dir /a как обычный файл (то есть не ссылка NTFS или точка повторной обработки):

     Directory of C:\git\redacted
    
    2017-12-14  12:36    <DIR>          .
    2017-12-14  12:36    <DIR>          ..
    2017-12-14  12:30             8,559 DemoServiceClient.cs~WIP.
                1 File(s)          8,559 bytes
                2 Dir(s)  223,416,360,960 bytes free
    
  • Запуск del DemoServiceClient.cs~WIP дает мне эту ошибку:

    Не удалось найти C:\git\redacted\DemoServiceClient.cs ~ WIP`

  • chkdsk сообщил о проблемах:

    Stage 1: Examining basic file system structure ...
      1140992 file records processed.
    File verification completed.
      19089 large file records processed.
      0 bad file records processed.
    
    Stage 2: Examining file name linkage ...
      1527444 index entries processed.
    Index verification completed.
      0 unindexed files scanned.
      0 unindexed files recovered to lost and found.
    
    Stage 3: Examining security descriptors ...
    Security descriptor verification completed.
      193227 data files processed.
    CHKDSK is verifying Usn Journal...
      34291080 USN bytes processed.
    Usn Journal verification completed.
    
    Windows has scanned the file system and found no problems.
    No further action is required.
    
     499526655 KB total disk space.
     290439980 KB in 856509 files.
        464848 KB in 193228 indexes.
             0 KB in bad sectors.
       1258155 KB in use by the system.
         65536 KB occupied by the log file.
     207363672 KB available on disk.
    
          4096 bytes in each allocation unit.
     124881663 total allocation units on disk.
      51840918 allocation units available on disk.
    

2 ответа2

-1

У меня была такая же проблема, и я нашел решение здесь.

Редактировать: вам нужно будет переместить / переименовать файл в папку, которую вы можете удалить с помощью предоставленного решения (или проверить, можете ли вы уже удалить родительскую папку файла).

Edit2: я также только что узнал, что NTFS (или сама Windows) не любит / не позволяет именам файлов заканчиваться точкой (или пробелом). Попробуйте удалить точку в конце имени файла (может потребоваться сделать это из CMD).

Здесь идет ответ Rayza73 для ссылки.
Я попробовал почти все, что он сделал, а также несколько раз пытался переименовать папку.

У меня была такая же проблема при использовании Server 2012 Std. Я пробовал разные варианты перехода в родительскую папку, потому что свойства безопасности папки, которую я пытался удалить, были пустыми, с использованием CMD и Dir /x и т.д. Я даже пытался открыть общий доступ к родительской папке, а затем с помощью Server 2008 R2. Никто из них не работал. Когда я попробовал Dir /x Server 2012, не отображается имя файла из 8 символов с ~ 1. Я пытался напечатать это сам, но это тоже не сработало. Затем я обнаружил, что в конце имени папки был пробел. Затем я снова попробовал все варианты CMD, используя пробел, но все же не повезло. Тогда я наконец наткнулся на это решение:

Откройте CMD и введите:

rd /s "\\?\D:\bad\folder\path "

пример:

rd /s "\\?\D:\Sharedata\folder1\folder2 "

обратите внимание на пробел после folder2 согласно пробелу в имени папки.
Очевидно, D: это диск, на котором есть папка.

В моем случае в имени папки не было места, только упорная папка, оставшаяся при неудачном запуске Teracopy.
Но в моей папке было несколько папок, которые нельзя было удалить.
Это добилось цели.

Мой пробег был:
rd /s "\\?\G:\Backups\MacMini\BADFOLDER"

Совет: Вы можете использовать TAB для автозаполнения имен папок в cmd .

-1

Иногда некоторые процессы можно оставить открытыми, чтобы предотвратить удаление файла. Вы можете проверить диспетчер задач и убить задачи, которые вы начали.

Иногда сам explorer.exe препятствует удалению. Вы можете перезапустить explorer:

  • Перейти в "Диспетчер задач"
  • Завершить задание "Проводник"
  • Файл -> "Запустить новое задание"
  • Введите "explorer", чтобы снова запустить задачу
  • Проверьте, что файл пропал

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