Консультация № 145245
27.09.2008, 23:21
0.00 руб.
28.09.2008, 22:27
0 6 0
Здравствуйте! Подскажите пожалуйста..Почему у меня в программе (удаление файла) не работает замена имени файла (test.txt) на маску *.*? Ведь насколько я понимаю, это поддерживается.. Никак не могу разобратся.. Или может у кого есть готовая программа по удалению каталога со всеми файлами или хотя бы часть этой задачи.. Буду очень признателен..

Приложение:
CSEG segment
assume cs:CSEG
org 100h

FileName db 'D:/345/test.txt',0

begin:
mov ax,cs
mov ds,ax

FIND_ONE:
;поиск файла
mov ah, 4eh
mov dx,offset FileName
int 21h

;удаление файла
mov ah, 41h
int 21h

ENDPRG: int 20h

CSEG ends
end begin

Обсуждение

Неизвестный
28.09.2008, 11:15
общий
Конечно, посмотрю Вашу программу, но вот первые замечания:
1) Вы создаете COM-файл (org 100h), а завершаете как EXE - через функцию 4Ch. Это очень не есть хорошо и может явиться причиной больших проблем, если будете использовать подпрограммы
2) А Вы формируете COM или EXE?
3) Не вижу у Вас никаких проверок найден ли файл. Это следует делать всегда, даже если Вы УВЕРЕНЫ в успешности работы
Неизвестный
28.09.2008, 16:00
общий
Boriss: спасибо за помощь.. пункт 1 исправил..формирую com.. проверки будут просто мне бы сначала разобратся с удалением по маске... иначе смысла от проверок не будет если проверять нечего..)
Неизвестный
28.09.2008, 19:51
общий
Пока некогда. Чуть позжее покажу свой вариант
А решение загадки вот в чем: сами подумайте: какой файл Вы пытаетесь удалить (в своей программе), если пишите *.*?
Неизвестный
28.09.2008, 22:27
общий
Хм.. Я думал, что он найдет первый файл..затем удалит..и зациклить это, пока файлы не кончатся.. Видимо так работать не будет как я понял..=)
Вообще моя задача, написать программу удаляющую каталог со всеми файлами и каталогами внутри..
Неизвестный
28.09.2008, 22:36
общий
Я имею в виду, что 4Eh помещает имя файла в DTA, а для удаления нужно "правильное" имя файла
давно
Старший Модератор
31795
6196
29.09.2008, 14:29
общий
Фунцкия 41h прерывания 21h, работает только с одним файлом, в отличии от функции 13h этого прерывания("Удалить файл" типа FCB) в ней не допускаются груповые операции "*" и "?" в имени файла.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

Форма ответа