0 / 0 / 0
Регистрация: 26.11.2015
Сообщений: 2
1

Вывести скрытые файлы каталога на экран

26.11.2015, 17:17. Показов 1450. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
День добрый, товарищи программисты. Нужна программа которая выводит сообщение о наличии скрытых файлов в каталоге.
Начал писать программу, которая выводит содержимое каталога на экран, но при установки атрибута 2h попутно выводятся и остальные файлы, не являющиеся скрытыми. TASM, DOS, COM

Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
        .model     tiny
        .code
        org        100h         ; СОМ-файл
start:
    push cs         ;на всякий случай, приравняем cs и ds
    pop ds          ;хотя в COM-файле они и так равны
 
    mov ah, 9       ;выводим на экран сообщение
    lea dx, msgpathrequest  ;в сообщении - просьба ввести имя каталога
    int 21h
 
    mov ah, 0Ah     ;вводим с клавиатуры строку
    lea dx, path        ;указываем на буфер ввода
    int 21h         ;буфер ввода имеет хитрую структуру
                ;первый байт - макс длина буфера
                ;во второй байт система положит количество считанных символов
                ;а с третьего байта начинается собственно буфер
 
    lea dx, pathstring  ;возьмём адрес начала введённой строки
    push dx         ;сохраним - этот адрес ещё понадобится
    add dl, byte ptr[pathactual]    ;к началу строки прибавим её длину, которую вернула предыдущая функция
    xor al, al      ;поправим старший регистр
    adc dh,al       ;типа а вдруг перенос? :)
    mov di, dx      ;поскольку имя каталога должно кончаться нулём,
    mov byte ptr[di], al    ;дадим ему в конце этот нуль
 
    mov ah, 3Bh     ;сменим каталог
    pop dx          ;на тот, что вводили
    int 21h
    jc no_such_directory    ;а если его нету - пойдём ругаться    
    
    
    mov ah,1ah
        mov dx,offset dta
        int 21h
        
    ;Ищем первый файл
    mov ah,4Eh          ; поиск первого файла
        mov cx,2h           ; указываем, что хотим найти скрытые файлы
    lea dx,searchPath
        int 21h
        jc  no_more_files   ; если CF = 1 - файлы кончились
 
print:
        mov ah,9h       ; вывод
        mov dx,offset dta + 1eh ; имени файла
        int 21h
 
    ; перевод на новую строку
        mov ah,9h
        mov dx,offset crlf
    int 21h
 
        mov ah,4Fh              ; найти следующий файл
    mov dx,offset dta
        int 21h
    jc  no_more_files
    jmp print       ;закрываем цикл
 
no_such_directory:
    mov ah, 9       ;вывод сообщения
    lea dx, msgnosuchdir    ;указываем адрес сообщения
    int 21h
    jmp no_more_files
 
no_more_files:                         ; если файлы кончились,
        mov ah,9h
        mov dx,offset message
        int 21h
    
        ; задержка
        xor ax,ax
        int 16h
   
        mov ah,4ch
        int 21h
 
 
msgpathrequest    db 0Ah, 0Dh, "Enter the full directory name: $"
msgnomorefiles  db 0Ah, 0Dh, "No files found in current directory$"
msgnosuchdir    db 0Ah, 0Dh, "No such directory$"
crlf db 0Dh,0Ah,'$' ;аналогично, новая строка
searchPath  db "*.*",0
dta     db 2ch dup (?)
        db "$"
message db 'Press any key...','$'
path        label byte  ;указатель на буфер ввода строки
pathlen     db 66
pathactual  db ?
pathstring  db 66 dup (?)
 
end  start
Результат
Вывести скрытые файлы каталога на экран
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.11.2015, 17:17
Ответы с готовыми решениями:

Как создать архив каталога пользователя, не включая скрытые файлы и каталог lost?
Спасибо! Вот ещё вопрос, если не сложно ответить. Скрипт должен создавать архив домашнего...

PowerShell. Вывести содержимое каталога Windows по указанному формату на экран и в текстовый файл: файлы с расширением
PowerShell. Вывести содержимое каталога Windows по указанному формату на экран и в текстовый файл:...

Вывести на экран содержимое каталога, размер файлов каталога, и создать новый файл
Ребята помогите создать программу на ассемблере , в которой нужно : вывести на экран содержимое...

Вывести скрытые файлы
помогите плиз, не пойму в чем дело: надо вывести список скрытых файлов заданного каталога unit...

2
Фрилансер
3704 / 2076 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
26.11.2015, 22:49 2
Это нормальное поведение функций поиска. Флаг маски разрешает включать в результаты поиска скрытые файлы, но не запрещает включать остальные.

Там же в DTA по смещению +15h лежат реальные атрибуты файла, поставьте дополнительное сравнение
1
Ушел с форума
Автор FAQ
16276 / 7601 / 1064
Регистрация: 11.11.2010
Сообщений: 13,616
27.11.2015, 04:04 3
AndreyF1rst,
FAQ для раздела Assembler, MASM, TASM https://www.cyberforum.ru/cgi-bin/latex.cgi?\to "Поиск файлов и вывод содержимого каталога на экран"
1
27.11.2015, 04:04
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.11.2015, 04:04
Помогаю со студенческими работами здесь

Как вывести файлы каталога через for?
Помогите пожалуйста написать скрипт, который: выводит список файлов, расположенных в текущем...

Как вывести все файлы из каталога?
Как вывести все файлы из папки? $username = $_SESSION; $dir = "uploads/$username/"; //...

Командный .bat файл выводящий на экран bmp файлы каталога и его подкаталогов.
Здравствуйте, друзья, требуется ваша помошь. Требуется разработать командный файл (КФ),...

Вывести из каталога файлы, доступные для чтения и записи
Нашёл на форуме прогу, выводящую все файлы и каталога. Нужно организовать ещё следующее. Как...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru