Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > удалить каталог


Автор: ytrewq 21.6.2008, 07:19
Пытаюсь удалить сразу несколько каталогов
Код

#include <shellapi.h>
#pragma comment(lib,"shell32")

void main()
{
int res;
int i;
SHFILEOPSTRUCT fo;
CStringArray massiv;

massiv.Add("c:\\base\0\0");
    massiv.Add("c:\\base1\0\0");
    for(i=0;i<massiv.GetSize();i++)
    {
        AfxMessageBox(massiv.GetAt(i));
        ZeroMemory(&fo, sizeof(fo));
        fo.hwnd   = NULL;
    fo.pFrom  = massiv.GetAt(i);
        fo.wFunc  = FO_DELETE;
        fo.fFlags = FOF_NOCONFIRMATION;
        res = SHFileOperation(&fo);
    }
}



Неудается произвести чтение с диска  или удалить фаил, если в ручную передаю в fo.pFrom  = "c:\\base\0\0"; , то удаляется

Автор: ytrewq 21.6.2008, 07:49
черт не в ту тему разместил

Автор: rrrFer 21.6.2008, 08:21
Код

#include <string>
#include <stdlib.h>
using namespace std;
class str{
    private:
        string *s;
        int n;
        int m;
    public:
        str(int k){m=k;s=new string[m];n=0;};
        ~str(){delete s;};
        void add(string t){s[n]=t;n++;};
        void del();
};
void str::del(){
    string t;
    for(int i=0;i<n;i++){
        t="rmdir "+s[i];
        system(t.c_str());
    }
}
int main(){
    str s(2);
    s.add("F:\1");
    s.add("F:\2");
    s.del();
    s.~str();
    return 1;
}

Автор: ytrewq 21.6.2008, 08:45
это понятно, мне интересно почему мой вариант не канает

Автор: Rififi 21.6.2008, 20:10
ytrewq, 
проверь, что функция Add действительно добавляет второй 0

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)