Форум программистов, компьютерный форум, киберфорум
Assembler, MASM, TASM
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
9 / 6 / 5
Регистрация: 12.05.2011
Сообщений: 282

Создание подкаталога

24.12.2013, 09:12. Показов 1948. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
доброго времени суток! помогите пожалуйста понять как создавать каталоги в Tasm под DOS...
У меня в общем нужно написать программу создающую рекурсивно подкаталоги с именем текущего в текущей директории и со степенью вложенности указываемой мною в командной строке.
В ассемблере я очень плохо разбираюсь... попытался написать программу создающую хотябы просто каталог, и то не получилось.. вроде все правильно, но ничего не создается.. я уже молчу про несколько каталогов с уровнями вложенности) вообщем вот мой текст программы для создания каталога:
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
.8086
.model small
.stack 0FFh
.data
buff db 254,0,254 dup ('$')
path db 'F:\NewFolder', 0
.code
Start:
    mov ax, @data
    mov ds, ax
 
    ;mov ah, 09h
    ;mov dx, offset msg
    ;int 21h
    
    mov ah, 0Ah
    mov dx, offset buff
    int 21h
        
    mov ah, 39h
    mov dx, offset path
    int 21h
 
    mov ax, 4c00h
    int 21h
end Start
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.12.2013, 09:12
Ответы с готовыми решениями:

Перенести рекурсивно все файлы из каждого подкаталога главного каталога в корень этого подкаталога
Здравствуйте, подскажите, пожалуйста как решить задачу. Нужно в главном каталоге, проверить все субпапки, найти в них папки/подпапки,...

Копирование подкаталога по времени
Разработать программу, которая производит копирование одного из подкаталогов домашнего каталога пользователя, в какой-то другой каталог. ...

Вывод дочерних каталогов из подкаталога
Необходимо вывести все дочерние каталоги из подкаталога. В дочерних каталогах содержится некоторая информация. Вывести 1 запись из...

9
 Аватар для TFS
551 / 33 / 6
Регистрация: 11.12.2013
Сообщений: 92
24.12.2013, 09:34
Ваша программа успешно создаёт каталог. Правда, называется он NEWFOLDE - не забывайте, что используются короткие имена файлов (8 символов на имя и 3 - на расширение).

Введённая пользователем строка не используется.
1
9 / 6 / 5
Регистрация: 12.05.2011
Сообщений: 282
24.12.2013, 10:26  [ТС]
странно.... у меня вообще ничего не создается.. я кстати пробовал другие подобные программы и они тоже ничего не создавали

Добавлено через 13 минут
TFS, а вы не знаете с чем может быть связано не желание TASMом создавать каталоги? у меня Windows 7 32 разрядная, может в ОС причина?

Добавлено через 17 минут
ВСе, разобрался с созданием каталога, а вот как реализовать вложенность..., плюс еще и копируя имена предыдущих каталогов?
0
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16373 / 7685 / 1080
Регистрация: 11.11.2010
Сообщений: 13,759
24.12.2013, 10:43
SkN[i]lpl[e][r],
вложенность организуется если
  • при создании подкаталога dir2 в каталоге c:\dir1 указывается полный путь c:\dir1\dir2
  • если сделать каталог c:\dir1 текущим и уже в нем создать каталог \dir2
0
9 / 6 / 5
Регистрация: 12.05.2011
Сообщений: 282
25.12.2013, 08:42  [ТС]
т.е. например так?:
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
.8086
.model small
.stack 0FFh
.data
buffer db 10 dup(?)
catalog1 db '\Test',0
catalog2 db 'test',0
.code
Start:
   mov ax,3        ; Очистка экрана
    int 10h 
    mov ax,@data
    mov ds,ax             ; Создать подкаталог Test в текуще директории
  
 mov dx,offset catalog1
    mov ah,39h
    int 21h 
 mov     cx, 3 
sozd_catalog:
    mov ah,3Bh       ; установить текущим подкаталог \Test
    int 21h
    mov dx,offset catalog2    ; Создание подкаталога Test в каталоге \Test
    mov ah,39h
    int 21h
loop    sozd_catalog 
    mov ax, 4c00h
    int 21h
end Start
только получается что все папки будут иметь одиннаковые имена. Разве так должно быть?

Добавлено через 31 минуту
а как сделать чтоб число вложенности вводилось с клавиатуры?

Добавлено через 21 час 24 минуты
У меня последний вопрос) почему я не могу создать больше 16 вложенных папок?
0
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16373 / 7685 / 1080
Регистрация: 11.11.2010
Сообщений: 13,759
25.12.2013, 09:10
Цитата Сообщение от SkN[i]lpl[e][r] Посмотреть сообщение
почему я не могу создать больше 16 вложенных папок?
наверное, ограничение на длину имени каталога в DOS'е. Попробуй создавать вложенные подкаталоги с именем "1" - я думаю, чем длиннее имя - тем меньше вложенность. И попробуй создавать каталоги функцией 7139h она поддерживает длинные имена файлов и каталогов и возможно вложенность будет больше. О результатах эксперимента отпишись
0
9 / 6 / 5
Регистрация: 12.05.2011
Сообщений: 282
25.12.2013, 09:38  [ТС]
При задании имени каталога "1" максимальное количество вложенных папок получилось 40. а используя функцию 7139h TASM выдает ошибку "Constant too large". Все равно не понятно почему так ограничивает.

вот прога если интересно:
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
.8086
.model small
.stack 0FFh
.data
buffer db 10 dup(?)
catalog1 db 'test',0
mes db 'Katalogi sozdany!',0Dh,0Ah,'$'
.code
Start:
   mov ax,3        ; Очистка экрана
    int 10h 
    mov ax,@data
    mov ds,ax             
 
 mov     cx, 50     ;степень вложенности
sozd_catalog:
  
    mov dx,offset catalog1    ; Создание подкаталога Test в каталоге \Test
    mov ah,39h
    int 21h
    mov ah, 3Bh     ; установить текущим подкаталог \Test
    int 21h
loop    sozd_catalog 
mov ah,09h
mov dx,offset mes
int 21h
    mov ax, 4c00h
    int 21h
end Start
0
 Аватар для TFS
551 / 33 / 6
Регистрация: 11.12.2013
Сообщений: 92
25.12.2013, 09:54
Starting with DOS 2 hierarchical directories are supported. Each directory name is also 8.3 format but the maximum directory path length is 64 characters due to the internal current directory structure (CDS) tables that DOS maintains. Including the drive name, the maximum length of a fully qualified filename that DOS supports is 80 characters using the format drive:\path\filename.ext followed by a null byte.
http://en.wikipedia.org/wiki/DOS
0
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16373 / 7685 / 1080
Регистрация: 11.11.2010
Сообщений: 13,759
25.12.2013, 09:59
SkN[i]lpl[e][r],
имя каталога "\Test" 5 символов * 16=80
имя каталога "\1" 2 символа * 40=80
Цитата Сообщение от TFS Посмотреть сообщение
the maximum length of a fully qualified filename that DOS supports is 80 characters using the format drive:\path\filename.ext followed by a null byte.
Что и требовалось доказать, а с 7139h поэкспериментируй, у тебя
Цитата Сообщение от SkN[i]lpl[e][r] Посмотреть сообщение
у меня вообще ничего не создается..
, а потом
Цитата Сообщение от SkN[i]lpl[e][r] Посмотреть сообщение
ВСе, разобрался с созданием каталога
1
9 / 6 / 5
Регистрация: 12.05.2011
Сообщений: 282
25.12.2013, 10:13  [ТС]
Спасибо, все стало более менее ясно)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.12.2013, 10:13
Помогаю со студенческими работами здесь

размеры файлов данного подкаталога
Подстажите пожалуйста, как мне найти размеры файлов данного подкаталога, какими функциями и если возможно то код

имя последнего подкаталога в пути
здравствуйте, такой вопрос: с помощью folder_browser_dialog получаю путь, например : "C:\Program Files\Common Files\Java" как...

Как проверить наличие подкаталога в каталоге?
Пож-ста помогите разобраться с этим вопросом. Например есть каталог 'C:first'. Как определить есть ли в этом каталоге подкаталог с...

Запустить из подкаталога программы файл exe
как запустить из подкаталога программы файл например 111.exe? То есть я написал программу, а потом я хочу ее запустить еще из одной мною...

Программа иногда не запускается из своего подкаталога
Здравствуйте. Проблема. Есть несколько программ на dotNET4, которые используются в нашем приложении. Приложению много лет. Недавно...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru