2016-08-07 12 views
-2

enter image description here を抽出.rarのシステムコードを持っているexeでそれを開いた場合オープン.rarを、私は例</p> <p>ため</p> <pre><code>system("unrar e c:myFiles.rar"); </code></pre> <p>で.rarをを抽出し、C++のコードを作成したいが、どのように私は名前とパスを取得することができ、それを

私はexeでapk/zip/rarを開く必要があり、exeファイルにパスと名前を検出する必要があります。 apk/rar/zipを抽出する必要がありました

+0

チェックフォルダとファイル名を? –

+0

いいえ私は、私が作ったexeファイルでrarを開き、コードを抽出されたファイル名を検出させたいという意味です –

+1

@DasserBasyouniあなたが求めているものはまだ明確ではありません。より良い例を挙げてください。あなたは何を目指していますか? –

答えて

2

あなたはAPK/ZIP/RARファイルを扱うことができるものとして、Windowsのレジストリであなたのexeファイルを登録する必要があります。

例えば

File Types and File Associations

How to Register a File Type for a New Application

HKEY_CLASSES_ROOT 
    .rar 
     (Default) = "RarFile" 

HKEY_CLASSES_ROOT 
    RarFile 
     shell 
      OpenWithMyApp 
       command 
        (Default) = ""C:\Path to\myapp.exe" "%1"" 

ユーザーがWindowsエクスプローラでそのようなファイルをクリックすると、exeが実行され、argvパラメータはになりますは、例えば、ファイル名を検出する:抽出後

#include <stdlib.h> 
#include <stdio.h> 

int main(int argc, char* argv[]) 
{ 
    if (argc > 1) 
    { 
     char cmd[512]; 
     sprintf(cmd, "unrar e %s", argv[1]); 
     system(cmd); 
    } 
    return 0; 
} 

それとも

#include <string> 
#include <cstdlib> 

int main(int argc, char* argv[]) 
{ 
    if (argc > 1) 
    { 
     std::string cmd = std::string("unrar e ") + argv[1]; 
     std::system(cmd.c_str()); 
    } 
    return 0; 
} 
+0

ありがとうございます。しかし、int argc、char * argv []をメインの で使用した後にどうすれば使用できますか( "unrar ec: \ myFiles.rar "、argv [1]); そのコードはstdlib.hにエラーを表示します。行番号360 _CRTIMP int __cdecl __MINGW_NOTHROW \tシステム\t(const char *); –

+0

std :: string私はエラー?それはライブラリですか?私は文字列、string.hを試して、stringstream何も動作しません。 –

+1

@DasserBasyouniあなたは 'C++'として質問をマークしました。 ''は標準のC++ヘッダーで、 'std :: string'は標準のC++クラスです。どのC++コンパイラもこのコードをコンパイルできます。 MingGWを使用していますか?CまたはC++モードで使用していますか? –

関連する問題

 関連する問題