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

Нужна помощь в создании/удалении директорий.

26.08.2009, 13:31. Показов 2234. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть потребность в рабочей папке создать временную директорию, а по завершении всех необходимых работ удалить ее. В виду того что изучением языка я занимаюсь всего второй месяц такая простоя задача поставила меня в тупик. Помогите кто сможет.

Вот на чем я пока застрял:

C++
1
2
3
4
5
6
7
    string tmp_direct;
    int k = 0;
    do
    {
        tmp_direct = put_isx + "\\TEMP"+ toString(k++) +"\\";
    }
    while(CreateDirectory((LPCWSTR)tmp_direct.c_str(), NULL) == 0);
Переменная put_isx типа string, функция toString(int k) самописная, преобразует целое число в string.

Первая проблема возникла в том что процедура CreateDirectory() наотрез отказалась принимать переменную типа string, путем нескольких махинаций мне удалось заставить компилятор скомпилировать это чудо, но в итоге каталог не создается и из цикла программа не выходит.

P.S. Имя каталога специально сделал переменным, это для того что бы в последствии программу можно было перевести в многопоточный режим. Я хотел для каждого потока выделить свой каталог в котором программа будет обрабатывать файлы.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.08.2009, 13:31
Ответы с готовыми решениями:

нужна помощь в создании процедуры на С++
нужна помощь в создании процедуры. задание звучит так: написать процедуру вычисления интерполяционного полинома в форме Лагранжа, Эйткина,...

Нужна помощь в Создании игры арканоид
Здравствуйте, есть курсовая работа, разработка игры Арканоид, тему выбрал сам потому что интересно. Обучался программировать тоже сам,...

Нужна помощь в создании программы
Уважаемые программисты помогите создать программу которая производит кодирование текстового сообщения методом Шеннона-Фэно или Хаффмена.

8
MCSD: APP BUILDER
 Аватар для IT_Exp
8795 / 1074 / 104
Регистрация: 17.06.2006
Сообщений: 32,602
26.08.2009, 13:55
CreateDirectory((LPCWSTR)tmp_direct.c_st r(), NULL)
CreateDirectoryA(tmp_direct.c_str(), NULL)
1
0 / 0 / 0
Регистрация: 26.08.2009
Сообщений: 11
26.08.2009, 14:53  [ТС]
Спасибо! Помогло. В следующий раз буду внимательней изучать библиотеки.

А если не сложно то можно написать команду удаления директории? Удаление файла я нашел в той же библиотеке а вот про директорию пока не нашел.
0
 Аватар для mirso
562 / 373 / 55
Регистрация: 05.04.2009
Сообщений: 767
26.08.2009, 14:58
Yukimir,
папка - это тоже файл(без разширения).
0
MCSD: APP BUILDER
 Аватар для IT_Exp
8795 / 1074 / 104
Регистрация: 17.06.2006
Сообщений: 32,602
26.08.2009, 14:58
А если не сложно то можно написать команду удаления директории? Удаление файла я нашел в той же библиотеке а вот про директорию пока не нашел.
Если директория пустая - то _rmdir (C) / RemoveDirectory (WinAPI)
если не пустая, то либо рекурсивно в цикле удалять файлы/директории до достижения пустоты, либо SHFileOperation с wFunc = FO_DELETE
0
Эксперт С++
 Аватар для odip
7176 / 3234 / 82
Регистрация: 17.06.2009
Сообщений: 14,164
26.08.2009, 20:58
папка - это тоже файл(без разширения).
Ничего подобного - это файл специального вида !
У каталога вполне может быть расширение.
Для удаления пустого каталога есть отдельная функция - rmdir().
2
 Аватар для mirso
562 / 373 / 55
Регистрация: 05.04.2009
Сообщений: 767
27.08.2009, 03:37
odip,
Цитата Сообщение от odip Посмотреть сообщение
Ничего подобного - это файл специального вида !
Переименовывать как файл, но без разширения - возможно?
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
#include <iostream>
#include <direct.h>        //int mkdir( const char *dirname );
 
using namespace std;
 
int main()//==============================================================
{
char dn[5] = "TEMP";
char dni[16];
char N[32];
 
    for( size_t i = 1; i < 7; i++)
    {
        strcpy( dni, dn );
         itoa( i, N, 10 );
         strcat( dni, N );
        //-----------------------------
        if( mkdir( dni ) == 0 )
        {              
            cout << "Directory " << dni << " easy created." << endl << endl;
            system( "pause" );//--------------------------------------------
            if( rmdir( dni ) == 0 )
                cout << "Directory " << dni << " was easy removed.";
            else
                cout << "Nnnnd\aaaaaaaa... no removing directory... ";
            cout << endl << endl;
        }
        else//--------------------------------------------------------------
        {
            cout << "Nnnnd\aaaaaaaa... no creating directory... " << dni;
            cout << endl << endl; 
        }
        system( "pause" );
    }        
 
system( "pause" );
return EXIT_SUCCESS;
}//=======================================================================
Цитата Сообщение от odip Посмотреть сообщение
Для удаления пустого каталога есть отдельная функция - rmdir()
А для непустого, какая?
0
Эксперт С++
 Аватар для odip
7176 / 3234 / 82
Регистрация: 17.06.2009
Сообщений: 14,164
27.08.2009, 21:12
Переименовывать как файл, но без разширения - возможно?
не понял
А для непустого, какая?
Rififi в посте #5 ответил уже.
0
 Аватар для mirso
562 / 373 / 55
Регистрация: 05.04.2009
Сообщений: 767
27.08.2009, 23:34
odip,
Цитата Сообщение от odip Посмотреть сообщение
папка - это тоже файл(без разширения).
Ничего подобного - это файл специального вида !
Ошибся!(каюсь)
Цитата Сообщение от odip Посмотреть сообщение
Переименовывать как файл, но без разширения - возможно?
Цитата Сообщение от odip Посмотреть сообщение
не понял
rename( "TEMP", "PMET");(вот о чем я тогда подумал)
переименовывает и папки, и файлы.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.08.2009, 23:34
Помогаю со студенческими работами здесь

нужна помощь в создании базы
всем доброго времени суток нужно за неделю освоить азы Ассезз, перечитал кучу книг, помогите теперь на практике плиз: 1. форма: на ней...

Нужна помощь в создании лабиринта
Здравствуйте. Нужна помощь в созданий лабиринта в Lazarus. А именно не понятны несколько моментов: 1) Какие элементы использовать в...

Нужна помощь в создании обработки
Вопрос такой, есть у меня 1с 8.1 зарплата. Там сделал по клише внешние обработки, для создания протоколов о начислениях (в приложении). Там...

Нужна помощь в создании online игры
Здраствуйте. Создаю online игру, прошу помочь. Мне надо сделать так: бой, блок:(голова, корпус, ноги) и удар(голова, корпус, ноги). Типо:...

Нужна помощь в создании элемента сайта
Кто-нибудь может помочь сделать это. Объясню задачу. На странице НТМЛ есть ссылка. Когда переходят по ней, открывается новая...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
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