Форум программистов, компьютерный форум, киберфорум
Delphi: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 19.11.2020
Сообщений: 50

Список имен файлов и каталогов каждого диска.

04.12.2020, 20:38. Показов 1308. Ответов 0

Студворк — интернет-сервис помощи студентам
Добрый вечер! В коде закомментировал ошибки, но вкратце еще раз напишу. Нужно создать файл X.txt, где X - это имя диска и в этот файл нужно вписать список имен файлов и каталогов каждого диска (с указанием атрибутов, времени создания, времени изменения). Если делать на каждый диск писать отдельный код, то получается, но нужно все это сделать одним циклом. Вот собственно код, заранее огромное спасибо!!!!
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
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
uses sysutils,windows;
var f,f1:text;
a:cardinal;
s:string;
c:char;
s1,Root: string;
k,k1,i:integer;
BytesFreeToCalller,TotalFreeBytes,TotalBytes:int64;
ld : DWORD;
procedure Search(Path: String;var ff:text;var a,b:integer);
var sr : TSearchRec;
begin
  if FindFirst(Path+'\*.*', $14FFF, sr) = 0 then
  begin
    repeat
      if (sr.Attr and 16) = 16 then
      begin
        if sr.Name[1] <> '.' then
        begin
          s1:= Path+'\'+sr.Name;
          inc(a);
          Search(s1,ff,a,b);
        end;
      end else
       inc(b);
        Writeln(ff,'File: ',sr.Name,' Size = ', sr.Size, ' Date = ',
                 DateTimeToStr(FileDateToDateTime(sr.Time)),' Attr = ',
                 sr.attr);
 
    until FindNext(sr) <> 0;
  end;
end;
 
begin
    k:=0;
    k1:=0;
    s:='papka';
    if not DirectoryExists(s) then MkDir(s);
    ChDir(s);
    AssignFile (f, 'log.txt');
    Rewrite(f);
    a:=GetLogicalDrives;
    s:='';
    for c:='A' to 'z' do
    begin
      if a and 1=1 then s:=s+c;
      a:=a shr 1;
    end;
    ld:=GetLogicalDrives;
Root:='#:\';
for i := 0 to 25 do begin
Root[1]:=Char(Ord('A')+i);
if (ld and (1 shl i)) <> 0 then begin
write(F,Char(Ord('A') + i) + ':\');
GetDiskFreeSpaceEx(PChar(Root),@BytesFreeToCalller,@TotalFreeBytes,
@TotalBytes);
writeln(F,'Общие объем диска: ',TotalBytes div 1073741824 , ' Гб. ');
writeln(F,'Свободно на Диске: ',TotalFreeBytes div 1073741824, ' Гб. ');
AssignFile (f1, 'root.txt');
   Rewrite(f1);
   Search(PChar(Root),f1,k, k1);
   CloseFile(f1);
   writeln(f,'Каталогов = ', k,' Файлов = ', k1);
   k:=0;
   k1:=0;
   DeleteFile('root.txt');
writeln;
end;
end;
 
//вот так, если делать каждый диск по отдельности, то все получается,
//но нужно циклом, чтоб все сразу
    {AssignFile (f1, 'D.txt');
    Rewrite(f1);
    Search('D:',f1,k, k1);
    CloseFile(f1);}
    //вот пробую циклом и вызывает ошибку RunError(3)
    for i := 0 to 25 do begin
Root[1]:=Char(Ord('A')+i);
if (ld and (1 shl i)) <> 0 then begin
write(F,Char(Ord('A') + i) + ':\');
    AssignFile (f1, PChar(Root)); //пробовал писать PChar(Root.txt),ошибка
    Rewrite(f1);    //Здесь ошибка
    Search(PChar(Root),f1,k, k1);
 
    CloseFile(f1);
    close(f);
    end;
end;
    writeln('press ENTER');
    readln;
    end.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.12.2020, 20:38
Ответы с готовыми решениями:

Список имен файлов без имен папок и скрытых файлов
Здравствуйте Я пытаюсь вывести список имен файлов в текущей папке без отображения имен папок и скрытых файлов Использую следующий...

Поиск каталогов и добавление их имен в список
procedure TForm4.Button1Click(Sender: TObject); var varser:Tsearchrec; search:integer; begin form4.listBox1.Clear;...

Копирование файлов с сохранением имён каталогов
Доброго времени суток. В батниках я полный ноль. Но не взирая на это, постарался самостоятельно его написать. Почитав форум, написал...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.12.2020, 20:38
Помогаю со студенческими работами здесь

Вывод списка имён каталогов и поиск в этих каталогах файлов с определёнными расширениями
Всем привет, прошу прощения , но в программировании я полный ноль, нужной мне инфы не нашел ( может плохо искал :( ). В общем задача такая,...

Файловый менеджер: отобразить в ListView список каталогов выбранного диска в ListBox
Плиз хелп ми!!!помогите с написанием файлового менеджера...мне нужно чтобы в combobox были например диск С\\ и диск D\\,выбирая один из них...

Создать список файлов и каталогов
Создать в каталоге c:\1\2 BAT-файл, записывающий в файл c:\1\2\Imya.txt список файлов и каталогов той папки (каталога), из которой был...

Вывести список файлов и каталогов
Здравствуйте. Почему не работает этот код? Нужно вывести список файлов и папок. #include &lt;iostream&gt; #include...

Вывести список каталогов и файлов в виде дерева!
Здравствуйте! Подскажите пожалуйста,как исправить что бы в консоль не выводились лишние отступы! Таким же способом на php написал ,...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru