LZMA SDK ganzer Pfad mit im Archiv



  • Hallo Leute,

    ich habe ein Problem mit dem LZMA SDK. Ich benutze die Funktion "CompressFile". Diese soltle dafür sorgen, dass eine einzelen Datei als root Element komprimiert wird.
    Aus irgendeinem Grund wird bei mir aber der gesamte Pfad mit in das Archiv gepackt, und nicht die Datei als Root Element verwendet. Ich mache das ganze in einer Klasse. Die Poste ich euch hier mal, wenn ihr noch mehr Informationen braucht, sagt bescheid.

    Header:

    #ifndef MYCOMPRESSION_H
    #define MYCOMPRESSION_H
    
    #include "7zpp/Include/7zpp/7zpp.h"
    
    class MyCompression
    {
    public:
        MyCompression(std::wstring path);
    
    private:
        bool compress(std::wstring path);
    };
    
    #endif // MYCOMPRESSION_H
    

    Dazu hier der Code:

    #include <iostream>
    #include <string.h>
    
    #include "mycompression.h"
    
    MyCompression::MyCompression(std::wstring path)
    {
        compress(path);
    }
    
    bool MyCompression::compress(std::wstring path)
    {    
        try
        {
            SevenZip::SevenZipLibrary lib;
            lib.Load(_T("7zx86.dll"));
            std::wstring archiveName = path.substr(0, path.find_last_of('.') + 1);
            archiveName.append(L"appinfo");
            SevenZip::SevenZipCompressor compressor (lib, archiveName.c_str());
    
            compressor.CompressFile(path);
    
            return true;
        }
        catch (SevenZip::SevenZipException& ex)
        {
            std::cerr << "Problem beim Komprimieren! Bitte wenden Sie sich an den Hersteller!" << std::endl;
            std::cout << "Bitte druecken Sie die Eingabe-Taste um fort zu fahren!" << std::endl;
            std::cin.get();
            return false;
        }
    }
    

    Der Pfad den ich übergebe ist ein eingelesener widestring der so aussieht "C:\ordner1\ordner2\test.xml".

    Ich möchte in der *.appinfo die dabei entsteht gern nur die Datei haben. Ich hoffe ihr könnt mir helfen.

    Vielen Dank schonmal


Anmelden zum Antworten