【发布时间】:2021-08-11 23:03:28
【问题描述】:
在“发送到”文件夹中添加应用程序很容易。但是一旦你选择了一个文件 --> 发送到 --> 你的应用程序,应用程序就会打开。
在上图中,一旦我点击“Your App”,应用程序就会打开,但是我如何获取所选文件的绝对路径?我找不到与此相关的任何内容。
【问题讨论】:
-
你见过命令行参数吗?
标签: winapi desktop-application flutter-desktop
在“发送到”文件夹中添加应用程序很容易。但是一旦你选择了一个文件 --> 发送到 --> 你的应用程序,应用程序就会打开。
在上图中,一旦我点击“Your App”,应用程序就会打开,但是我如何获取所选文件的绝对路径?我找不到与此相关的任何内容。
【问题讨论】:
标签: winapi desktop-application flutter-desktop
文件名可能是调用应用程序时使用的第一个参数。
您的主要功能必须如下所示:
int main(int argc, char *argv[])
那么 argc 是参数的数量,而 argv 是一个以空字符结尾的字符串数组。
第一个参数可以这样访问:
argv[1];
但不要忘记先检查 argc:
char* cFile=0;
if(argc==1) {
cFile=argv[1];
}
if(cFile) {
//do action with file here
}
【讨论】:
argc - 1是包含完整路径的东西。您可以使用PathCchRemoveFileSpec获取文件路径或使用_splitpath_s获取文件名和文件路径。