【ソフト名】 7-Zip32.dll 【バージョン】 4.31.03 【使用OS】 Windows2K 【PC機種】 IBM ThinkPad G41 【質問内容】 はじめまして。 7-Zip32.dllをUnicodeモードにて使用したいのですが、SevenZip()関数のコマンドに@を使用してファイルリストを指定すると、正しく圧縮を行なってくれないようです。
私の方では、以下のようにして確認しています。 ※圧縮ターゲットファイル(History.txt)は、D:\Tempフォルダに格納済み。
---Sampleソース-------------------------------- //ファイルリストに圧縮するファイル名をUnicode出力で書き込む FILE *fp = _wfopen(L"D:\\temp\\respons.txt", L"wb"); fwprintf(fp, L"%s", L"History.txt"); fclose(fp);
//Unicodeモードセット SevenZipSetUnicodeMode( TRUE ); SevenZip(NULL ,"a -t7z \"D:\\temp\\aaaa.7z\" \"D:\\temp\\\" @\"D:\\temp\\respons.txt\"", NULL, 0 ); ----------------------------------------------
※_wfopenの第2引数を L"wb" としているのは、圧縮するファイル名にUnicodeを使用しているものがあり、それも圧縮対照としてファイルリストに記述したかったので、このようにしています。
ファイルリストを L"wt" で開いて作成すれば、圧縮してくれますが、Unicodeの含まれたファイル名がファイルリストに書き出されないため、L"wb" の設定でなければならないのだろうな?と思っています。
以上、解決方法をご教示ください。 よろしくお願いします。
|