Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/25: Рейтинг темы: голосов - 25, средняя оценка - 4.72
0 / 0 / 0
Регистрация: 10.02.2011
Сообщений: 15

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

15.02.2011, 22:29. Показов 5218. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
пожалуйста напишите программу, которая позволяет выполнять операции создания каталога, изменения временного каталога, удаление файла и директории (рекурсивно).очень прошу!!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.02.2011, 22:29
Ответы с готовыми решениями:

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

скрипт, для рекурсивного обхода заданного каталога (полный путь+имя файла/каталога, размер, дата создания)
Только начинаю работать с Ruby. Работа с файловой системой. Вот нужен такой вот скрипт написать, не совсем понимаю с чего бы начать. ...

Рекурсивный поиск и удаление каталога. Пробелы в имени каталога
Со вторым днем зимы всех. Есть bat: @echo off rem unsvn.bat setlocal rem rdir=название_удаляемых_каталогов set rdir=Startup ...

16
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
16.02.2011, 17:49
Есть С-шные функции создания и удаления каталога mkdir и rmdir насколько помню их заголовки даны в direct.h, нагугли в msdn-е об их синтасисе, вроди по памяти rmdir и файлы удаляет

Добавлено через 2 часа 19 минут
Вот что у меня получилось
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
#include <direct.h>
#include <windows.h>
#include <shlobj.h> //Подключаем SHLDialog
#include <stdio.h>
 
char sPath[MAX_PATH];
char sName[MAX_PATH];
 
LPTSTR SelectPath(LPCTSTR sTITLE, UINT BIF_PARAM);
/*
BIF_DONTGOBELOWDOMAIN   
BIF_BROWSEINCLUDEFILES
*/
 
void main()
{
BEGIN:
    printf("\t*******PROGRAM MENU*******\r\n");
    printf("1 - MAKE   DIRECTORY\r\n");
    printf("2 - REMOVE DIRECTORY\r\n");
    printf("3 - REMOVE FILE\r\n");
    int iKey;scanf("%d",&iKey);
    switch(iKey)
    {
    case 1:
        sprintf(sPath,"%s\\",
            SelectPath
            (
                "Choose directory", 
                BIF_DONTGOBELOWDOMAIN
            )
                );
        if(sPath[0] =! '\0')
        {
            printf("Creation subdirectory in path :\r\n%s\r\n",sPath);
            printf("Enter name of subdirectory\r\n");
            scanf("%s",sName);
            if(mkdir(strcat(sPath,sName)))
                printf("Creation \r\n%s\r\n SUCCESFULLY COMPLETED\r\n",sPath);
        }
        break;
    case 2:
        sprintf(sPath,"%s\\",
            SelectPath
            (
                "Choose directory", 
                BIF_DONTGOBELOWDOMAIN
            )
                );
        if(sPath[0] =! '\0')
        {
            if(rmdir(sPath))
                printf("%s\r\n SUCCESFULLY DELETED\r\n",sPath);
        }
        break;
    case 3:
        sprintf(sPath,"%s\\",
            SelectPath
            (
                "Choose file", 
                BIF_DONTGOBELOWDOMAIN|BIF_BROWSEINCLUDEFILES
            )
                );
        if(sPath[0] =! '\0')
        {
            if(rmdir(sPath))
                printf("%s\r\n SUCCESFULLY DELETED\r\n",sPath);
        }
        break;
    default :
        return;
        break;
    }
    goto BEGIN;
}
 
LPTSTR SelectPath(LPCTSTR sTITLE, UINT BIF_PARAM)
{
    char sPath[MAX_PATH];sPath[0] = '\0';
    LPCITEMIDLIST lpITEMIDLIST;
    BROWSEINFO pINFO = 
    {
        NULL, 
        NULL, 
        sPath,
        sTITLE,
        BIF_PARAM,
        NULL,
        NULL,
        0
    };
    if((lpITEMIDLIST = SHBrowseForFolder(&pINFO)))
    {
        if(SHGetPathFromIDList(lpITEMIDLIST, sPath))
            GetShortPathName((LPCTSTR)sPath, sPath,strlen(sPath));
    }
    return &sPath[0];
}
1
0 / 0 / 0
Регистрация: 10.02.2011
Сообщений: 15
16.02.2011, 19:17  [ТС]
спасиб,ща попробуем)

Добавлено через 1 час 18 минут
а как подлючить #include <shlobj.h> ??а то выдает ошибку
0
 Аватар для Kastaneda
5232 / 3205 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
16.02.2011, 19:51

Не по теме:

Есть С-шные функции создания и удаления каталога mkdir и rmdir насколько помню их заголовки даны в direct.h
direct.h не входит в стаднартную реализацию языка Си, например в GCC (у меня 4.5.2) такого хедера нет.



Добавлено через 2 минуты
Андрей92, спешл_фор_ю
На сколько я понял, это чисто Borland'овская приблуда.
0
0 / 0 / 0
Регистрация: 10.02.2011
Сообщений: 15
16.02.2011, 20:43  [ТС]
чё то не получилось,а без <shlobj.h> прога будет работать??и для чего shlobj.h вообще нужен?
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
17.02.2011, 16:08
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
#include <direct.h>
#include <string.h>
#include <stdio.h>
 
char sPath[256];
 
void main()
{
BEGIN:
    printf("\t*******PROGRAM MENU*******\r\n");
    printf("1 - MAKE   DIRECTORY\r\n");
    printf("2 - REMOVE DIRECTORY\r\n");
    printf("3 - REMOVE FILE\r\n");
    int iKey;scanf("%d",&iKey);
    switch(iKey)
    {
    case 1:
        strcpy(sPath,"C:\\Temp");
        if(mkdir(sPath) == 0)
            printf("Creation \r\n%s\r\n SUCCESFULLY COMPLETED\r\n",sPath);
        break;
    case 2:
        strcpy(sPath,"C:\\Temp");
        if(rmdir(sPath) == 0)
            printf("%s\r\n SUCCESFULLY DELETED\r\n",sPath);
        break;
    case 3:
        strcpy(sPath,"C:\\Temp\\Test.txt");
        if(rmdir(sPath) == 0)
            printf("%s\r\n SUCCESFULLY DELETED\r\n",sPath);
        break;
    default :
        return;
        break;
    }
    goto BEGIN;
}
Добавлено через 3 минуты
Kastaneda, direct.h входит в состав пакета VisualStudio 6.0 и shlobj.h тоже...
2
0 / 0 / 0
Регистрация: 10.02.2011
Сообщений: 15
20.02.2011, 11:28  [ТС]
а при создания каталога,как можно узнать что он вообще создался??
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
20.02.2011, 16:00
1-й самый простой, открыть диск С в эксплорере и поглядеть, ну это очень тривиально)))
2-й вбей
C++
1
system("explorer C:\\Temp");
для подключения заголовка system необходим stdlib.h
3 - можно использовать функцию ShellExecute но это уже слишком в условиях поставленной задачи...
0
0 / 0 / 0
Регистрация: 10.02.2011
Сообщений: 15
20.02.2011, 20:34  [ТС]
а,спасиб
0
0 / 0 / 0
Регистрация: 10.02.2011
Сообщений: 15
21.02.2011, 16:26  [ТС]
не подскажете чё тут ошибку выдает?
Миниатюры
Выполнение операций создания каталога, изменения временного каталога, удаление файла и директории (рекурсивно)  
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
21.02.2011, 20:34
Андрей92, Это ворнинг. Уберите break;
0
0 / 0 / 0
Регистрация: 10.02.2011
Сообщений: 15
21.02.2011, 21:25  [ТС]
если убераешь break то прога не выполняет операции
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
22.02.2011, 01:51
Андрей92, С какого это? Все она выполняет. Там return в default идет - выход из функции. break там точно не нужен
0
0 / 0 / 0
Регистрация: 10.02.2011
Сообщений: 15
22.02.2011, 07:21  [ТС]
откомпелировал,нажимаю ctrl+f9 выбираю что мне нужно сделать,например создать каталог,нажимаю 1,а оно не создает,пару дней назад всё было норм,создавало,удаляло каталоги,а щас чёто не
Миниатюры
Выполнение операций создания каталога, изменения временного каталога, удаление файла и директории (рекурсивно)  
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
22.02.2011, 11:24
Я билдер не люблю, но решил всё таки разобраться почему у тебя не компилится проект. BC.EXE сообщил при линковании об 1-м предупреждении, закоментируй код как я показал на картинке, после этого программа работает, сам тестил!!!
Изображения
 
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
22.02.2011, 11:28
А вообще можно просто убрать ветвь default и никаких проблем
0
0 / 0 / 0
Регистрация: 10.02.2011
Сообщений: 15
22.02.2011, 17:01  [ТС]
я так и сделал,чёто всеравно не так ,раньше при нажатии например создать каталог оно пишет что создало SUCCESFULLY COMPLETED ,а щас вообще не пишет что создало

Добавлено через 7 минут
может проблема в заполнении памяти??
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.02.2011, 17:01
Помогаю со студенческими работами здесь

System:IO выбор каталога для создания файла
Как получить каталог выбранный пользователем? Даже если каталог будет получен через выбор файла, не важно. Код выбора файла, при...

Удаление каталога и файла
Добрый день. Подскажите пожалуйста, как можно реализовать удаление из каталога всех файлов и папок одновременно?

Написать программу, которая обеспечивает:начальное формирование каталога файлов;вывод каталога файлов;удаление файлов...
Уважаемые хакеры!Прошу вашей помощи!Я в СИ не особо шарю.((( А на днях уже сдавать.Очень рассчитываю на любую вашу помощь. Вот задача. ...

Копирование файла и удаление каталога
Как можно найти каталог D:\Temp\?\?\Data, скопировать из него файл без расширения, переименовав его в 1.txt и потом удалить каталог Data?

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


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru