c - 如何在资源管理器中打开所选文件

时间:2013-04-01 15:59:40

标签: c++ c windows visual-c++ cmd

与谷歌浏览器一样,当您下载某些内容时,可以单击“在资源管理器中打开”或其他内容,它将打开exlplorer并突出显示该文件。 我将编写一个程序(可能是一个c cmd程序),在一个giver位置搜索一个文件,然后我希望能够直接从程序中单击并打开该文件。 还有其他方式你会建议我这样做吗?它不一定是c或甚至是cmd程序。

6 个答案:

答案 0 :(得分:2)

要打开文件夹并选择文件夹中的一个或多个项目,SHOpenFolderAndSelectItems功能就是您要找的内容。

答案 1 :(得分:1)

如果您下载的文件路径为downloadFilePath

然后

Process.Start(downloadFilePath) 

会做正确的事。基于文件扩展名的Open Verb Path,它应该启动文件扩展名的默认应用程序

答案 2 :(得分:1)

我对c ++知之甚少,但VB和youtube对我很有帮助:))

谢谢Chris的链接!

ShellExecute(handle, "find", <fully_qualified_path_to_folder>, NULL, NULL, 0);

还要感谢其他人的链接!

答案 3 :(得分:0)

您可以使用WinAPI中的CreateProcess()功能。

http://msdn.microsoft.com/en-us/library/windows/desktop/ms682425(v=vs.85).aspx

示例:

#include <iostream>
#include <Windows.h>

using namespace std;

int wmain()
{
    STARTUPINFO si;
    PROCESS_INFORMATION pi;

    ZeroMemory( &si, sizeof(si) );
    si.cb = sizeof(si);
    ZeroMemory( &pi, sizeof(pi) );
    //open C:\Windows in Explorer
        CreateProcess
        (
        TEXT("c:\\WINDOWS\\system32\\explorer.exe"),
        " C:\\Windows",NULL,NULL,FALSE,
        CREATE_NEW_CONSOLE,
        NULL,NULL,
        &si,
        &pi
        );
        return 0;
}

答案 4 :(得分:0)

你没有提到你正在使用的框架,所以我会给你我使用的Qt选项。这适用于Windows或Qt支持的任何操作系统。我在使用Visual Studio构建的Qt应用程序中使用它。

QDesktopServices::openUrl( QUrl::fromLocalFile( "myfile.xls" ) );
QDesktopServices::openUrl( QUrl::fromLocalFile( "myfile.doc" ) );
QDesktopServices::openUrl( QUrl::fromLocalFile( "myfile.txt" ) );

文档位于QDesktopServices::OpenUrl QUrl::fromLocalFile

答案 5 :(得分:0)

system()做事方式:

#include <stdlib.h>

int main() {
    system("explorer /select,C:\\Windows\\notepad.exe");
    return 0;
}

options to explorer.exe

的完整列表