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

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

Восстановить пароль Регистрация
 
4ygynOK
0 / 0 / 0
Регистрация: 09.10.2013
Сообщений: 3
09.10.2013, 17:30     Проблемы в коде для удаления директории #1
Код:
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?
Подскажите плиз.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.10.2013, 17:30     Проблемы в коде для удаления директории
Посмотрите здесь:

C++ Атрибуты для директории
функция в си++ для удаления элемента C++
C++ Как уствновить права доступа к директории для Groups и Users?
Функция для удаления слова из строки C++
C++ Проблемы с приведением типов для компоранда для qsort
Программа для считывания содержимого директории (Си -> Си++) C++
C++ Функция удаления элемента из дерева, ошибка в коде
Функция для удаления из массива простых чисел C++
Функция для удаления строки из двумерного массива C++
Перечислить все проблемы, которые вы видите в данном коде C++
Найти и исправить ошибки в коде (проблемы с вводом) C++
Проблемы с реализацией игры "Морской бой": найти и исправить ошибки в коде C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Raali
587 / 291 / 19
Регистрация: 06.07.2013
Сообщений: 960
Завершенные тесты: 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);
это какая то сторонняя библиотека?
4ygynOK
0 / 0 / 0
Регистрация: 09.10.2013
Сообщений: 3
09.10.2013, 20:51  [ТС]     Проблемы в коде для удаления директории #3
В этом месте мы формируем список list заполняя его значениями из БД. Вся загвоздка в следующем цикле for именно там происходит прохождение по списку и удаление директорий соответственно!!! Но не так как надо
Yandex
Объявления
09.10.2013, 20:51     Проблемы в коде для удаления директории
Ответ Создать тему
Опции темы

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