Форум программистов, компьютерный форум CyberForum.ru

Написать программу, аналогичную команде dir операционной системы MS DOS , которая выводит на экран список файлов и папок из заданного каталога - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Генератор случайных чисел http://www.cyberforum.ru/cpp-beginners/thread866329.html
Здравствуйте! Кто-нибудь объясните пожалуйста. Вот есть функция rand(). Она возвращает псевдослучайные числа от нуля до RAND_MAX. А можно как-нибудь сделать, чтобы она возвращала числа, ну скажем в промежутке ?? Спасибо!
C++ Найти числа, встречающиеся более двух раз (исправить вывод) Здравствуйте форумчане) Делаю лабу по программирвоанию, всё написал и даже работает но вывод результата очень корявый(неправильный), помогите его исправить а то уже голова что то не варит... Задача: Написать программу, которая в ланной последовательности целых положительных чисел a..a находит числа, встречающиеся более двух раз. Вывести номер числа и его значение. Если таких чисел нет-вывести... http://www.cyberforum.ru/cpp-beginners/thread866328.html
Графический модуль C++
Всем привет. Пишу приложение под виндовс, которое рассчитывает скорость движения тела. Хотелось бы изображать и траекторию полёта. Как это реализовать?
C++ Разреженные массивы. Как?
Задание: Разработать шаблонный класс SparseArray для работы с разреженным массивом. Класс должен содержать конструктор по умолчанию, основной конструктор и конструктор копирования. Кроме того, класс должен содержать функции для ввода и вывода элементов массива. Определить операторную функцию (знак операции выбрать самостоятельно), которая позволяет ввыводить среднее арифметическое значение...
C++ Получить в порядке убывания все делители данного числа http://www.cyberforum.ru/cpp-beginners/thread866248.html
Составьте программу получения в порядке убывания всех делителей данного числа. помогите пожалуйста хотя бы с условием, хотя бы скажите что в while писать... #include<stdio.h> #include<conio.h> main() { int n,count,n1; scanf("%d",&n); count=0, n1=n; while(n!=0)
 

Показать сообщение отдельно
Антон12334
Сообщений: n/a
15.05.2013, 20:19     Написать программу, аналогичную команде dir операционной системы MS DOS , которая выводит на экран список файлов и папок из заданного каталога
Написать программу, аналогичную команде dir операционной системы MS DOS , которая выводит на экран список файлов и папок из заданного каталога. Дополнить вывод статистической информацией: минимальный размер файла, максимальный размер файла, средний размер файла.


C++
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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
#include "stdafx.h"
#include"windows.h"
#include"conio.h"
#include<iostream>
 
struct FileInf
{
    TCHAR fname[MAX_PATH];
double fsizeKb;
bool isDir;
bool isArchive;
bool isHidden;
bool isSystem;
bool isReadOnly;
int sum;
int a;
 
}; 
 
 
void printOneFile(FileInf aFile);
void sortArray(FileInf* arr, int nCount);
 
const TCHAR* mask = L"C:\\*.*";
int _tmain(int argc, _TCHAR* argv[])
{
    WIN32_FIND_DATA FindFileData;
    HANDLE hFind;
    
int nCount = 0;
 
 
            hFind = FindFirstFile(mask, &FindFileData);
            do
            {
                ++nCount;
            }while (FindNextFile(hFind, &FindFileData));
            FindClose(hFind);
 
int i = 0;
    FileInf *aFiles = new FileInf[nCount];
 
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    setlocale(LC_ALL,"rus");
    hFind = FindFirstFile(mask, &FindFileData);
        do
            {
                _tcscpy(aFiles[i].fname, FindFileData.cFileName);
                aFiles[i].fsizeKb=FindFileData.nFileSizeHigh/1024.0*(MAXDWORD+1) + FindFileData.nFileSizeLow/1024.0;
                
 
                if(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) 
                    aFiles[i].isDir=true;
                else
                    aFiles[i].isDir=false;
        
                if(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_ARCHIVE) 
                    aFiles[i].isArchive=true;
                else
                    aFiles[i].isArchive=false;
        
                if(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_HIDDEN) 
                    aFiles[i].isHidden=true;
                else
                    aFiles[i].isHidden=false;
 
                if(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_SYSTEM)
                    aFiles[i].isSystem=true;
                else
                    aFiles[i].isSystem=false;
        
                if(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_READONLY) 
                    aFiles[i].isReadOnly=true;
                else
                    aFiles[i].isReadOnly=false;
 
                ++i;
            }while (FindNextFile(hFind, &FindFileData));
            FindClose(hFind);   
    char menu;
        do
        {
                printf("1 - вывести на экран файлы\n 2 - вывод файлов с сортировкой\n 3 - Обработка\n 0 - закрыть программу\n");
                menu=getch();
                switch(menu)
                {
                    case'1':
                        {
                         printf("Список папок и файлов папки: %S\n\n",mask);
                            for (i = 0; i < nCount; ++i)
                                {
                                     printOneFile(aFiles[i]);
                                    if(i%25==0 && i!=0) 
                                        getchar();
                                }
                            printf("\nКонец списка");
                            getchar();
 
                        }break;
                    case'2':
                        {
                            sortArray(aFiles, nCount);
                            printf("\n\nПосле сортировки:\n");
                            for (i = 0; i < nCount; ++i)
                            {
                                printOneFile(aFiles[i]);
                                if(i%25==0 && i!=0) 
                                    getchar();
                            }
                            printf("\nКонец списка");
                            getchar();
 
                        }break;
                        
                    case'3':
                        int k, fsizeKb, max;
                        {
                                                                               
 
                              k=0;
                        for (int i=0; i<fsizeKb; i++)
                        {
                        
                        if (k>max)
                          {
                            max=k;
                          }
                        }
                        
                        
            printf("Максимальный размер файла: %f \n", max);
                        
                        }break;
                }
        }while(menu!='0');
    return 0;
}
 
 
void printOneFile(FileInf aFile)
{
 
printf("%-25S ", aFile.fname);
    if(aFile.isDir)
        printf("      -------   DIR   ");
    else
    {
        if(aFile.fsizeKb < 1024)
            printf("%10.2f Kb         ",aFile.fsizeKb); 
        if(aFile.fsizeKb >= 1024 && aFile.fsizeKb < 1024*1024)
            printf("%10.2f Mb         ",aFile.fsizeKb/1024);    
        if(aFile.fsizeKb >= 1024*1024 && aFile.fsizeKb < 1024*1024*1024)
            printf("%10.2f Gb         ",aFile.fsizeKb/1024/1024);
    }
    
    if(aFile.isArchive)
        printf("A ");
    if(aFile.isHidden)
        printf("H ");
    if(aFile.isSystem)
        printf("S ");
    if(aFile.isReadOnly)
        printf("R");
    printf("\n");
}
 
 
void sortArray(FileInf* arr, int nCount)
{
    FileInf temp;
 
for (int i = 0; i < nCount; ++i)
for (int j = i; j < nCount; ++j)
        {
if (_tccmp(arr[i].fname, arr[j].fname) > 0)
            {
                temp=arr[i];
                arr[i]=arr[j];
arr[j]=temp;
            }
        }
 
}



Программа работает нормально , но не выводит максимальный размер файла , причину найти не могу . Если кто то найдет ошибку пожалуйста отпишитесь . Зарание благодарен .
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 02:42. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru