用exe打开.rar并提取它

时间:2016-08-07 03:21:35

标签: c++

enter image description here 我想创建一个C ++代码,用

提取.rar
system("unrar e c:\myFiles.rar");

例如

但如果我用带有系统代码的exe打开它,怎么能得到.rar的名称和路径

作为照片,我需要用我制作的exe打开apk / zip / rar,并希望exe检测路径和需要提取的apk / rar / zip的名称

1 个答案:

答案 0 :(得分:2)

您需要在Windows注册表中注册您的exe才能处理apk / zip / rar文件:

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 main()参数来检测文件名,例如:

#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;
}