Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
4ygynOK
0 / 0 / 0
Регистрация: 09.10.2013
Сообщений: 3
#1

Проблемы в коде для удаления директории - C++

09.10.2013, 17:30. Просмотров 213. Ответов 2
Метки нет (Все метки)

Код:
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
BOOL CUGODatabaseMng::DeleteDir(DWORD BUGO_Id,BOOL* bDelete)
{
    ASSERT(m_pDatabaseMng);
    if (!m_pDatabaseMng)
        return FALSE;
    BOOL bDelete1 = TRUE;
    BOOL bDelete2 = TRUE;
    try
    {
        std::list<DWORD> lstIds;
 
        CString sSQL;
        sSQL.Format(_T("SELECT ID FROM BUGO WHERE PARENT_ID=%d"), BUGO_Id);
 
        ADODB::_RecordsetPtr spRS = m_pDatabaseMng->OpenRecordset(sSQL);
        long nRecordCount = spRS->GetRecordCount();
 
        for (long nRecord = 0; nRecord < nRecordCount; ++nRecord)
        {
            lstIds.push_back((long)spRS->GetFields()->GetItem(_T("ID"))->GetValue());
            spRS->MoveNext();
        }
 
        spRS->Close();
 
        for (std::list<DWORD>::iterator it = lstIds.begin(); it != lstIds.end(); ++it)
        {
            if (!DeleteDir(*it, &bDelete1))
                return FALSE;
 
            if (bDelete1)
                bDelete2 = FALSE;
        }
 
        if (bDelete2)
        {
            sSQL.Format(_T("DELETE FROM BUGO WHERE ID=%d"), BUGO_Id);
            VERIFY(m_pDatabaseMng->ExecuteSQL(sSQL));
            return TRUE;
        }
 
 
    }
    catch (_com_error& e)
    {
        if (AfxMessageBox(CString(_T("Удаление каталога невозможно!\n")) + (LPCTSTR)e.Description() + CString(_T("\nПродолжить удаление?")),MB_OKCANCEL) == IDOK)
        {
            *bDelete = FALSE; 
            return TRUE;
        }
        else return FALSE;
    }
 
    return FALSE;
}
проблема в том что уровень вложенности папок всеголишь 2, надо сделать больше.
И ещё как все это можно реализовать без использования 2 параметра в значении функции BOOL* bDelete?
Подскажите плиз.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.10.2013, 17:30
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Проблемы в коде для удаления директории (C++):

Функция удаления элемента из дерева, ошибка в коде - C++
Добрый вечер, уважаемые программисты! :) Помогите, пожалуйста, понять где здесь ошибка. static bool h = false; // узел...

Найти и исправить ошибки в коде (проблемы с вводом) - C++
При запуске возникает проблема, он не считывает один из вводов, не могу понят в чем проблема #include &quot;stdafx.h&quot; #include &lt;stdio.h&gt; ...

Перечислить все проблемы, которые вы видите в данном коде - C++
Предложите ваши варианты решения заданий 1. Перечислите все проблемы, которые вы видите в данном коде: class Foo { public: ...

Атрибуты для директории - C++
Всем доброго времени суток помогите мне разобратся как создавать папки/файлы с атрибутами? там скрытый, ну в таком смысле. Создаю папку при...

Проблемы с реализацией игры "Морской бой": найти и исправить ошибки в коде - C++
Доброго времени суток. У меня вопрос по игре &quot;Морской бой&quot;. Я вывел поле с написанными координатами сверху и слева. Затем предлагаю...

Программа для считывания содержимого директории (Си -> Си++) - C++
#include &lt;stdio.h&gt; #include &lt;dirent.h&gt; int main(int argc, char ** argv) { DIR * d; struct dirent * entry; if (argc != 2) { ...

2
Raali
623 / 327 / 34
Регистрация: 06.07.2013
Сообщений: 1,068
Завершенные тесты: 1
09.10.2013, 18:40 #2
слишком частный код, надо больше информации.
что например тут делается?
C++
1
(long)spRS->GetFields()->GetItem(_T("ID"))->GetValue()
и вот тут
C++
1
ADODB::_RecordsetPtr spRS = m_pDatabaseMng->OpenRecordset(sSQL);
это какая то сторонняя библиотека?
0
4ygynOK
0 / 0 / 0
Регистрация: 09.10.2013
Сообщений: 3
09.10.2013, 20:51  [ТС] #3
В этом месте мы формируем список list заполняя его значениями из БД. Вся загвоздка в следующем цикле for именно там происходит прохождение по списку и удаление директорий соответственно!!! Но не так как надо
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.10.2013, 20:51
Привет! Вот еще темы с ответами:

Как уствновить права доступа к директории для Groups и Users? - C++
Мне надо создать дерево директорий на определенном диске и для каждой директории установить permissions для груп и пользователей. Скажем...

функция в си++ для удаления элемента - C++
Есть ли функция в си++ для удаления элемента,например из текста?) Запрещено создавать темы с бессмысленными названиями вроде...

Проблемы с приведением типов для компоранда для qsort - C++
Вот так всё ок (во всяком случаи компилятор не выдвинул никаких предупреждений): int comp(const void* i, const void* j) { Worker*...

Функция для удаления слова из строки - C++
Доброго времени суток, господа! Столкнулся с проблемой написания функции для удаления слова из строки. До этого приходилось удалять...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru