Search code examples
c++qtsysinternals

Integrating SDelete into C++ Program


I am trying to securely clear out a directory using SDelete. I know that this is used from the Command line, but how I would I go about automatically clearing the directory from my C++ code, also using Qt if this has a built any built in functions. I could not find anything with searching and this is my first time doing something like this. Any help would be greatly appreciated, thanks.


Solution

  • It is good that you're not trying to re-create the functionality of SDelete. It would be a LOT of work to do as good as a job as what SDelete does. Invoking the existing application is a wise choice.

    Now, on to your question... If you want to use QT, then what you need is something like this:

    QString path = QString("sdelete", QStringList() << "Bogus.txt");
    QProcess sdelete;
    
    sdelete.start( path );
    sdelete.waitForFinished();
    

    That will start the process sdelete with the parameter Bogus.txt and then wait until the application is finished.


    More Info: https://doc.qt.io/archives/qt-4.8/qprocess.html#start

    Edit from OP : I found that using the following worked for me with the argument being passed in being a QString.

    QProcess::execute("sdelete -s path");