Конференция "WinAPI" » Удалить файл. Как можно жестче. [D7, WinXP]
 
  • OW © (25.01.12 16:05) [0]
    Нужно попытаться удалить файл как то по жёстче, чем
    BOOL DeleteFile(

       LPCTSTR lpFileName  // pointer to name of file to delete  
      );
    файл этой же программы, текстовый, просто его могут открыть для просмотра в чем-либо, что не возбраняется. Но могут оставить надолго, и простое  DeleteFile не справляется, с ошибкой что файл занят.
    В принципе, ничего страшного. Максимум через месяц административно отключится все равно, но каждый раз его программа будет пытаться удалить.

    UnLocker например, удаляет практически все.
    Если не так же, то как-то более круто надо (хотя бы попытаться) удалить.

    Подскажете как?
  • QAZ (25.01.12 21:03) [1]
    чезабред, переведи
  • OW © (26.01.12 08:33) [2]
    Надо удалить файл, который может занят быть (открыт в другой программе)
    Если не получится - ладно.
    Так сейчас и работает - не удалилось и не удалилось, потом удалим.
    Можно так и оставить, только пытаться удалить как-то более навязчиво
    В идеале, удалить несмотря ни на что.

    посоветовали
    CreateFile + FILE_FLAG_DELETE_ON_CLOSE
    или MoveFileEx вторым параметром nil и третьим MOVEFILE_DELAY_UNTIL_REBOOT
    это - не то.
    Файл удалится как закроется или после/вовремя перезагрузки. (как я понял)
    Как он закроется - я и сам его удалю, а перезагрузка бывает раз в пол-года - год.
  • MultIfleX (26.01.12 09:37) [3]
    Убей софт который его держит.. либо убей его дескриптор - а затем можно удалить. А тебе не кажется, что от удаления используемого файла, использующей его программе может изрядно поплохеть?
  • OW © (26.01.12 09:47) [4]

    > тебе не кажется, что от удаления используемого файла, использующей
    > его программе может изрядно поплохеть?

    Все равно.

    Файлы на сервере, папка открыта почти всем.

    Файлы прошлого дня в 00:00 переносятся в архивную папку.
    Если кто не освободил файл до 00:00 - сам виноват.

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

    Надо вырвать файл, пусть  использующая его программа падает/кричит/дерется, все рано.
  • OW © (26.01.12 09:50) [5]
    в принципе, можно админов попросить, пусть настроят закрытие всех файлов в 00.. Наверное, такое win2003srv поддерживает. Должен, имхо..
  • sniknik © (26.01.12 10:47) [6]
  • OW © (26.01.12 11:31) [7]
    Спасибо, посмотрю
  • MultIfleX (26.01.12 12:41) [8]
    Так файлы открыты по сети? Ну так тогда конечно, разрывай сессию на сервере (NetSessionDel), перечисление сессий - NetSessionEnum.
  • QAZ (26.01.12 13:20) [9]

    > Наверное, такое win2003srv поддерживает

    он и не такое поддерживает,причем пофиг открыто или нет,и ты со своей програмулькой там вообще лишний
    судя повсему и такие админы лишние в этой организации...
 
Конференция "WinAPI" » Удалить файл. Как можно жестче. [D7, WinXP]
Есть новые Нет новых   [134430   +4][b:0][p:0]