Verzeichnis löschen



  • hi leutz
    nach langer zeit brauch ich wieder mal eure hilfe
    ich will ein verzeichnis löschen mit der function SHFileOpreration
    dazu muss ich die members von SHFILEOPSTRUCT füllen soweit so gut
    so funktionierts einwandfrei
    SHFILEOPSTRUCT sh;
    sh.hwnd = NULL;
    sh.fFlags = FOF_ALLOWUNDO | FOF_NOCONFIRMATION | FOF_NOERRORUI;
    sh.wFunc = FO_DELETE;
    sh.pFrom = "test3";
    sh.pTo = NULL;
    sh.hNameMappings = NULL;
    sh.lpszProgressTitle = NULL;
    SHFileOperation (&sh);

    aber wenn ich eine variable einsetz zb:

    deldir = "test3";
    char test[260] ;
    LPCTSTR temp = test;
    strcpy(test,deldir.c_str());

    SHFILEOPSTRUCT sh;
    sh.hwnd = NULL;
    sh.fFlags = FOF_ALLOWUNDO | FOF_NOCONFIRMATION | FOF_NOERRORUI;
    sh.wFunc = FO_DELETE;
    sh.pFrom = test;
    sh.pTo = NULL;
    sh.hNameMappings = NULL;
    sh.lpszProgressTitle = NULL;
    SHFileOperation (&sh);

    wird das verzeichnis nicht geloescht:( irgendwie denke ich hat mit den NULL zeichen zutun aber genau weis ichs nicht
    ich hoffe mir kann jemand helfen
    thx im voraus
    tracer



  • Der String muß am Ende doppelt genullt sein. Also irgendwie so:

    test[(strlen(strcpy(test,deldir.c_str())) + 1)] = '\0';
    

    [ Dieser Beitrag wurde am 08.11.2002 um 12:57 Uhr von -King- editiert. ]



  • hi king
    danke danke danke
    ich hab zwar schon so eine ähnliche version probiert aber deine hat gefuntzt
    super:D
    cu tracer


Anmelden zum Antworten