Подскажите, как удалить каталог с файлами?

Тема в разделе "WASM.BEGINNERS", создана пользователем Arsenal1990, 7 май 2007.

  1. Arsenal1990

    Arsenal1990 New Member

    Публикаций:
    0
    Регистрация:
    7 апр 2007
    Сообщения:
    8
    Всем доброго времени суток! Подскажите, как удалить заданный катлог с файлами? Пробовал разными способами, но не получается никак! Помогите, пожалуйста! Может у кого-нить есть исходник?
     
  2. MSoft

    MSoft New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2006
    Сообщения:
    2.854
    Приведи пример - какие способы ты использовал?
     
  3. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    попробуй рекурсивно
     
  4. Arsenal1990

    Arsenal1990 New Member

    Публикаций:
    0
    Регистрация:
    7 апр 2007
    Сообщения:
    8
    Я пытался через поиск всех файлов. Перехожу в текущий каталог, Нашел первый файл - считываю DTA+1Eh типа имя файла, передаю его функции удаления 41h, удаляю, иду к следующему итд, пока каталог не станет пустым, а потом убираю и сам каталог. А у кого-нибудь из вас есть исходник?
     
  5. MSoft

    MSoft New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2006
    Сообщения:
    2.854
    тю, сразу б сказал, что под дос пишешь...
     
  6. Arsenal1990

    Arsenal1990 New Member

    Публикаций:
    0
    Регистрация:
    7 апр 2007
    Сообщения:
    8
    А, ну да, под ДОС, знаешь как эту прогу написать?
     
  7. MSoft

    MSoft New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2006
    Сообщения:
    2.854
    Нет, извиняюсь, но под дос не знаю :dntknw: А разве нет функции/прерывания удаления папки? Когда-то давно вроде видел же, но это было давно :dntknw:
     
  8. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    делаешь рекурсивную функцию, ей передается каталог.
    она перечисляет все, что в ней есть.
    если попался каталог, вызывает рекурсиво себя для этого каталога
    если файл - стирает его
    после чего стирает сам каталог.
     
  9. Arsenal1990

    Arsenal1990 New Member

    Публикаций:
    0
    Регистрация:
    7 апр 2007
    Сообщения:
    8
    MSoft а знаешь как под Windows?
     
  10. MSoft

    MSoft New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2006
    Сообщения:
    2.854
    RemoveDirectory
     
  11. Arsenal1990

    Arsenal1990 New Member

    Публикаций:
    0
    Регистрация:
    7 апр 2007
    Сообщения:
    8
    Можешь исходник дать, пожалуйста,если не трудно? Просто я под винду не писал никогда, а прога срочно нужна!
     
  12. Arsenal1990

    Arsenal1990 New Member

    Публикаций:
    0
    Регистрация:
    7 апр 2007
    Сообщения:
    8
    Или может подскажете литературу?
     
  13. MSoft

    MSoft New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2006
    Сообщения:
    2.854
    Литература - уроки ицзелиона на этом сайте, шоб понять, что такое вин32. + справочник по функциям SDK ~25-30 метров весит
     
  14. Arsenal1990

    Arsenal1990 New Member

    Публикаций:
    0
    Регистрация:
    7 апр 2007
    Сообщения:
    8
    Вот я кое-как написал, она компиляется,но far матерится, что отсутствует какой-то обязательный параметр (какой?) и почему-то вместо заданного каталога идет удаление всего каталога, где находится программа! Может сможет кто-нить подсказать, в чем ошибка?

    code segment
    org 100h

    assume cs:code,ds:code,es:code,ds:code

    start:
    call changedir
    call delete
    jc no_morefiles

    no_morefiles:
    mov ah,3ah
    mov si,0001h
    mov dx,offset dname
    int 21h
    mov ax,4c00h
    int 20h

    changedir proc
    mov dx,offset dname
    mov ah,3bh
    int 21h
    ret
    changedir endp

    delete proc
    mov ax,7141h
    mov si,0001h
    mov dx, offset all_files
    int 21h
    ret
    delete endp

    dname db "c:\dir",0
    all_files db "*.*",0
    code ends
    end start
     
  15. Vov4ick

    Vov4ick Владимир

    Публикаций:
    0
    Регистрация:
    8 окт 2006
    Сообщения:
    581
    Адрес:
    МО
    Arsenal1990 А твоя программка не в другом разделе лежит (D: например)?
    Функция CHDIR не изменяет текущий диск, а изменяет текущий каталог на _указанном_ диске (если он указан). Поэтому нужно сначала сменить текущий диск (0eh функция).
    Вообще неплохо бы проверять ошибки после вызова функций.
     
  16. MHajduk

    MHajduk New Member

    Публикаций:
    0
    Регистрация:
    7 ноя 2006
    Сообщения:
    123
    Arsenal1990
    По-моему в этом кусочке кода
    Код (Text):
    1.      jc no_morefiles
    2.  
    3. no_morefiles:
    чего-то нет. Ведь мы всегда пройдём к no_morefiles несмотря на состояние флага CF.

    Кроме того, вместо кода
    Код (Text):
    1. mov ax,4c00h
    2. int 20h
    надо вписать
    Код (Text):
    1. mov ax,4c00h
    2. int 21h
     
  17. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Вообще говоря, без разницы )