Форум программистов, компьютерный форум, киберфорум
Assembler: DOS/Real Mode/16-bits
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
1 / 1 / 0
Регистрация: 19.10.2017
Сообщений: 60
TASM

Копирование директорий с их содержимым

16.05.2019, 22:47. Показов 2362. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. У меня есть задание, в котором сказано создать код, который копировал бы директории с контентом, но такого я ране не делал. Я перелопатил полно сайтов, но не отыскал информации, и потому очень прошу помощи. Может кто-то хотя покажет, где подробно описывают этот процесс. Заранее спасибо!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.05.2019, 22:47
Ответы с готовыми решениями:

Произвести копирование всех директорий и поддиректорий с содержимым в разных потоках
Здравствуйте. Нужно произвести копирование всех директорий и поддиректорий с содержимым в разных потоках. Т.е. при обнаружении различных...

Копирование директорий
Есть задача. Не используя внешних утилит и стандартных средств, составить программу, которая будет копировать файлы и директории...

Копирование директорий со съёмного диска
Здравствуйте, уважаемые форумчане! С помощью цикла пытаюсь скопировать все директории со съёмного диска на ПК: Dim USBFolders() As...

13
1779 / 757 / 153
Регистрация: 03.06.2009
Сообщений: 5,940
17.05.2019, 09:09
Поиск файлов
см. "Оригинальная программа с поиском тут". Это обход дерева каталогов, на его основе можно сделать копирование.

Если под windows, то придется опираться на такой обход и переписывать с си на асм
FindFirstFile и FindNextFile рекурсивный поиск файла
2
1 / 1 / 0
Регистрация: 19.10.2017
Сообщений: 60
17.05.2019, 10:23  [ТС]
Спасибо, но мне не под Windows, а под emu8086. Мне подсказпли что можна найти API которая и поможет скопировать файлы, но спасибо за поиск файлов - также полезная иформация
0
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16373 / 7685 / 1080
Регистрация: 11.11.2010
Сообщений: 13,759
17.05.2019, 10:32
Vlados_Bro,
проще всего использовать системную команду COPY а как пример использования можно посмотреть в FAQ для раздела Assembler, MASM, TASM https://www.cyberforum.ru/cgi-bin/latex.cgi?\rightarrow "Поиск файлов и вывод содержимого каталога на экран. Используем системную команду DIR"
1
1 / 1 / 0
Регистрация: 19.10.2017
Сообщений: 60
17.05.2019, 10:34  [ТС]
Оо, большое спасибо!
0
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16373 / 7685 / 1080
Регистрация: 11.11.2010
Сообщений: 13,759
17.05.2019, 10:35
c:\> copy d:\folder1\*.* c:\folder2
0
1 / 1 / 0
Регистрация: 19.10.2017
Сообщений: 60
17.05.2019, 10:38  [ТС]
А это будет работать на Ему8086 с его вирт диском С? Просто я впервые пишу такой код на асм, раньше только работа с регистрами , циклами и переходами, нк и запись и чтение ис файла
0
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8659 / 4494 / 1669
Регистрация: 01.02.2015
Сообщений: 13,905
Записей в блоге: 12
17.05.2019, 12:42
Vlados_Bro,
а emu8086 вообще поддерживает работу с файловыми функциями?
Два года назад - не поддерживал. А как сейчас - сможете найти в справке к emu8086?
0
1 / 1 / 0
Регистрация: 19.10.2017
Сообщений: 60
17.05.2019, 12:46  [ТС]
К сожалению я не знаю( сейчас смотрю и пробую разобраться в masm и пробывать копировать файлы через него
0
3410 / 1829 / 489
Регистрация: 28.02.2015
Сообщений: 3,696
17.05.2019, 13:24
Цитата Сообщение от Vlados_Bro Посмотреть сообщение
К сожалению я не знаю( сейчас смотрю и пробую разобраться в masm и пробывать копировать файлы через него
На миниатюре, то чем Вы богаты в Эме.
А Вам нужно 4Eh - FindFirst и 4Fh - FindNext.
Миниатюры
Копирование директорий с их содержимым  
0
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8659 / 4494 / 1669
Регистрация: 01.02.2015
Сообщений: 13,905
Записей в блоге: 12
17.05.2019, 16:03
FAQ для раздела Assembler, MASM, TASM: Поиск файлов и вывод содержимого каталога на экран
https://Пример рекурсивного об... орий диска
http://www.delphisources.ru/pa... _dirs.html
По ссылке - алгоритм на Delphi
Кликните здесь для просмотра всего текста
Delphi
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
{ **** UBPFD *********** by delphibase.endimus.com ****
>> Копирование содержимого директории, вместе с поддиректориями.
 
Фукция копирует СОДЕРЖИМОЕ директории SourceDir в директорию TargetDir.
Копируются все файлы, подкаталоги, и файлы находящиеся в этих подкаталогах.
 
Аргумент StopIfNotAllCopied: если значение этого аргумента = True,
то при первой же ошибке копирования файла или папки, работы функции
прекратится а функуция вернёт False. В случае если этот аргумент = False,
то ошибки копирования учитываться не будут.
 
Аргумент OverWriteFiles: если True, то существующие файлы будут переписаны.
 
Зависимости: SysUtils, FileCtrl, Windows
Автор:       VID, snap@iwt.ru, ICQ:132234868, Махачкала
Copyright:   VID
Дата:        31 января 2003 г.
***************************************************** }
 
function FullDirectoryCopy(SourceDir, TargetDir: string; StopIfNotAllCopied,
  OverWriteFiles: Boolean): Boolean;
var
  SR: TSearchRec;
  I: Integer;
begin
  Result := False;
  SourceDir := IncludeTrailingBackslash(SourceDir);
  TargetDir := IncludeTrailingBackslash(TargetDir);
  if not DirectoryExists(SourceDir) then
    Exit;
  if not ForceDirectories(TargetDir) then
    Exit;
 
  I := FindFirst(SourceDir + '*', faAnyFile, SR);
  try
    while I = 0 do
    begin
      if (SR.Name <> '') and (SR.Name <> '.') and (SR.Name <> '..') then
      begin
        if SR.Attr = faDirectory then
          Result := FullDirectoryCopy(SourceDir + SR.Name, TargetDir + SR.NAME,
            StopIfNotAllCopied, OverWriteFiles)
        else if not (not OverWriteFiles and FileExists(TargetDir + SR.Name))
          then
          Result := CopyFile(Pchar(SourceDir + SR.Name), Pchar(TargetDir +
            SR.Name), False)
        else
          Result := True;
        if not Result and StopIfNotAllCopied then
          exit;
      end;
      I := FindNext(SR);
    end;
  finally
    SysUtils.FindClose(SR);
  end;
end;
Пример использования:

Delphi
1
2
FullDirectoryCopy('C:\a', 'D:\b');
// Скопирует содержимое директории C:\a (не не саму директорию) в директорию D:\b
0
1 / 1 / 0
Регистрация: 19.10.2017
Сообщений: 60
17.05.2019, 22:21  [ТС]
Здравствуйте. Я тут попробовал "грубо "копировать - открываю файлы чтения и записи, копирую часть данных с файла чтения, записую эту часть в файл записи, продолжаю так делать пока не перенесу все данные. Я написал код но он не работает и я не знаю что делать, пожалуйста помогите сделать до конца программу, ОЧЕНЬ прошу. БОЛЬШОЕ СПАСИБО!
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
.model  tiny
    .code
    ORG   100h      
    
start:         
mov   ax,  3D00h                       
mov dx, path_open_2     
int 21h                              ;Открываю файл записи
;push ax 
mov contaiment_2, ax                 ;сохранил идентификатор
  
mov ax,  3D00h                     
mov dx, path_open_1     
int 21h                             ;Открываю файл чтения
;push ax 
mov contaiment_1, ax                 ;сохранил второй идентификатор      
 
ReadingAndWriting:
 
mov ah, 3fh                          ;буду читать с файла
mov bx, contaiment_1                 ;положил нужный дескриптор
mov dx, offset buffer
int 21h
push ax                                ;сохранил количество считанных битов для записи и для проверки условия ах < сх - то значит запись прошла полностью 
 
mov ah, 40h                       ;буду записывать в файл
mov bx, contaiment_2                  ;дескриптор
mov dx, offset buffer                ;буду записывать с буфера
pop cx                 ;количество битов, которые нужно записать в файл
int 21h             
 
cmp ax, cx ;
jl continue
jmp ReadingAndWriting       
 
 
continue:
 
MOV   DI,  offset buffer    
MOV   BX,  29       
MOV   BYTE PTR [DI+BX], '$'     ;закрываю файлы
               
 
mov   ah,  3eh        
mov bx, contaiment_1   
int 21h
mov   ah,  3eh       
mov bx, contaiment_2   
int 21h
 
 
contaiment_1 dw 255 dup("$")    
contaiment_2 dw 255 dup("$")    
buffer dw ?
path_open_1 dw    'C:\emu8086\MyBuild\1.txt', 0 ;пока что указую вручную путь к файлам 
path_open_2 dw    'C:\emu8086\MyBuild\2.txt', 0

Спасибо ещё раз за помощь!
0
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8659 / 4494 / 1669
Регистрация: 01.02.2015
Сообщений: 13,905
Записей в блоге: 12
17.05.2019, 22:41
1. Нет инструкций завершения программы и передачи управления операционной системе.
2. Открытие обоих файлов производится на чтение - см. описание fn=3Dh
3. Вы всё ещё цепляетесь за emu8086 - этот эмулятор не поддерживает функции работы с каталогами (удаление, создание каталога, поиск файла).
0
1 / 1 / 0
Регистрация: 19.10.2017
Сообщений: 60
18.05.2019, 15:29  [ТС]
Спасибо, немноно не внимателен. А насчёт поиска каталога, то у меня есть код поиска, тоисть это не страшно. А так если я исправлю ошыбки, я могу росчитовать что алгоритм будет рабочим в моей реализации?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.05.2019, 15:29
Помогаю со студенческими работами здесь

Копирование директорий из Listbox в папку
Добрый день, уважаемые форумчане, помогите решить проблему! Необходимо скопировать директории из listBox в определенную папку. ...

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

ProgressBar, копирование директорий, отдельная библиотека
Пишу курсовую, нужно скопировать директорию целиком, создал отдельную библиотеку, в которой и написал метод копирования файлов,...

Копирование папки со всем содержимым
Привет! Можете дать пример функции которая скопирует папку в ту же директорию со всем содержимым с переименованием её? Ну чтобы стало в...

Создание/копирование/переименование/удаление файлов и директорий
Есть такие задания: 1) Выполнение создания/копирование/переименования/удаления файлов; 2) Выполнение...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru