Willkommen bei Entwickler-Forum.
Ergebnis 1 bis 4 von 4
  1. #1
    Zaungast
    Registriert seit
    26.02.2003
    Beiträge
    11

    Standard Datei in Papierkorb verschieben

    Hi.
    Ich habe eine kleine Funktion geschrieben, die eine Datei in den Papierkorb verschiebt. Obwohl ich nur eine Datei übergebe, wird nach dem
    Löschen von 2 oder mehreren Dateien gefragt. Wo kann der Fehler liegen?

    bool ToBasket(String datei)<br>
    {<br>
    TSHFileOpStruct *SHFileOpStruct;<br>
    SHFileOpStruct = new TSHFileOpStruct;<br>
    SHFileOpStruct->hwnd = 0;<br>
    SHFileOpStruct->wFunc = FO_DELETE;<br>
    SHFileOpStruct->pFrom = datei.c_str();<br>
    SHFileOpStruct->pTo = NULL;<br>
    SHFileOpStruct->fFlags = FOF_ALLOWUNDO + FOF_SIMPLEPROGRESS;<br>
    SHFileOpStruct->hNameMappings = NULL;<br>
    SHFileOpStruct->lpszProgressTitle = NULL;<br>
    <br>
    if (SHFileOperation(SHFileOpStruct))<br>
    return (true);<br>
    else<br>
    return (false);<br>
    }

  2. #2
    Stammgast
    Registriert seit
    26.02.2003
    Beiträge
    183

    Standard

    pFrom muss doppelt Nullterminiert werden, vielleicht ist das der Fehler.
    (Auszug Hilfe:

    pFrom

    Pointer to a buffer that specifies one or more source file names. Multiple names must be null-separated. The list of names must be double null-terminated.

    )

    Gruß Thorste

  3. #3
    Zaungast
    Registriert seit
    26.02.2003
    Beiträge
    11

    Standard

    Danke.
    Und wie mache ich das

  4. #4
    Stammgast
    Registriert seit
    26.02.2003
    Beiträge
    183

    Standard

    Also ich bin den Weg über die gute alte sprintf() gegangen, aber ich denke es gibt noch einen eleganteren Weg.<br>

    <pre>

    char *name;
    name = new char[datei.Length() + 2];
    sprintf(name, "%s%c",datei.c_str(),'\0');

    LPSHFILEOPSTRUCT SHFileOpStruct;
    SHFileOpStruct = new SHFILEOPSTRUCT;
    SHFileOpStruct->hwnd = Handle;
    SHFileOpStruct->wFunc = FO_DELETE;
    SHFileOpStruct->pFrom = name;
    SHFileOpStruct->pTo = NULL;
    SHFileOpStruct->fFlags = FOF_ALLOWUNDO + FOF_SIMPLEPROGRESS;
    SHFileOpStruct->hNameMappings = NULL;
    SHFileOpStruct->lpszProgressTitle = NULL;

    SHFileOperation(SHFileOpStruct);
    delete[] name;
    </pre&gt

 

 

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •