<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[LZMA SDK ganzer Pfad mit im Archiv]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>ich habe ein Problem mit dem LZMA SDK. Ich benutze die Funktion &quot;CompressFile&quot;. Diese soltle dafür sorgen, dass eine einzelen Datei als root Element komprimiert wird.<br />
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.</p>
<p>Header:</p>
<pre><code>#ifndef MYCOMPRESSION_H
#define MYCOMPRESSION_H

#include &quot;7zpp/Include/7zpp/7zpp.h&quot;

class MyCompression
{
public:
    MyCompression(std::wstring path);

private:
    bool compress(std::wstring path);
};

#endif // MYCOMPRESSION_H
</code></pre>
<p>Dazu hier der Code:</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;string.h&gt;

#include &quot;mycompression.h&quot;

MyCompression::MyCompression(std::wstring path)
{
    compress(path);
}

bool MyCompression::compress(std::wstring path)
{    
    try
    {
        SevenZip::SevenZipLibrary lib;
        lib.Load(_T(&quot;7zx86.dll&quot;));
        std::wstring archiveName = path.substr(0, path.find_last_of('.') + 1);
        archiveName.append(L&quot;appinfo&quot;);
        SevenZip::SevenZipCompressor compressor (lib, archiveName.c_str());

        compressor.CompressFile(path);

        return true;
    }
    catch (SevenZip::SevenZipException&amp; ex)
    {
        std::cerr &lt;&lt; &quot;Problem beim Komprimieren! Bitte wenden Sie sich an den Hersteller!&quot; &lt;&lt; std::endl;
        std::cout &lt;&lt; &quot;Bitte druecken Sie die Eingabe-Taste um fort zu fahren!&quot; &lt;&lt; std::endl;
        std::cin.get();
        return false;
    }
}
</code></pre>
<p>Der Pfad den ich übergebe ist ein eingelesener widestring der so aussieht &quot;C:\ordner1\ordner2\test.xml&quot;.</p>
<p>Ich möchte in der *.appinfo die dabei entsteht gern nur die Datei haben. Ich hoffe ihr könnt mir helfen.</p>
<p>Vielen Dank schonmal</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/332506/lzma-sdk-ganzer-pfad-mit-im-archiv</link><generator>RSS for Node</generator><lastBuildDate>Mon, 27 Apr 2026 20:41:08 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/332506.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 05 May 2015 09:11:28 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to LZMA SDK ganzer Pfad mit im Archiv on Tue, 05 May 2015 09:11:28 GMT]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>ich habe ein Problem mit dem LZMA SDK. Ich benutze die Funktion &quot;CompressFile&quot;. Diese soltle dafür sorgen, dass eine einzelen Datei als root Element komprimiert wird.<br />
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.</p>
<p>Header:</p>
<pre><code>#ifndef MYCOMPRESSION_H
#define MYCOMPRESSION_H

#include &quot;7zpp/Include/7zpp/7zpp.h&quot;

class MyCompression
{
public:
    MyCompression(std::wstring path);

private:
    bool compress(std::wstring path);
};

#endif // MYCOMPRESSION_H
</code></pre>
<p>Dazu hier der Code:</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;string.h&gt;

#include &quot;mycompression.h&quot;

MyCompression::MyCompression(std::wstring path)
{
    compress(path);
}

bool MyCompression::compress(std::wstring path)
{    
    try
    {
        SevenZip::SevenZipLibrary lib;
        lib.Load(_T(&quot;7zx86.dll&quot;));
        std::wstring archiveName = path.substr(0, path.find_last_of('.') + 1);
        archiveName.append(L&quot;appinfo&quot;);
        SevenZip::SevenZipCompressor compressor (lib, archiveName.c_str());

        compressor.CompressFile(path);

        return true;
    }
    catch (SevenZip::SevenZipException&amp; ex)
    {
        std::cerr &lt;&lt; &quot;Problem beim Komprimieren! Bitte wenden Sie sich an den Hersteller!&quot; &lt;&lt; std::endl;
        std::cout &lt;&lt; &quot;Bitte druecken Sie die Eingabe-Taste um fort zu fahren!&quot; &lt;&lt; std::endl;
        std::cin.get();
        return false;
    }
}
</code></pre>
<p>Der Pfad den ich übergebe ist ein eingelesener widestring der so aussieht &quot;C:\ordner1\ordner2\test.xml&quot;.</p>
<p>Ich möchte in der *.appinfo die dabei entsteht gern nur die Datei haben. Ich hoffe ihr könnt mir helfen.</p>
<p>Vielen Dank schonmal</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2452551</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2452551</guid><dc:creator><![CDATA[Khalidjian]]></dc:creator><pubDate>Tue, 05 May 2015 09:11:28 GMT</pubDate></item></channel></rss>