gpt4 book ai didi

c++ - 如何将文件路径和参数的执行路径分开?

转载 作者:太空宇宙 更新时间:2023-11-04 14:14:33 25 4
gpt4 key购买 nike

有这样几行

C:\Program Files\Realtek\Audio\HDA\RAVCpl64.exe -s

在注册表项中

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

现在我想把绝对路径和参数从行中分离出来。

如果行是

C:\Space Dir\Dot.Dir\Sample Name.Dot.exe param path."C:\Space Dir\Dot.Dir\Sample Name.Dot.exe"

我应该使用哪个分隔符来处理这一行?有没有什么Windows API函数可以解决这个问题?

最佳答案

您需要的函数在您可以在 Windows 中使用的标准 C 库中。

char theDrive[5],thePath[MAX_PATH],theFilename[MAX_PATH],theExtension[MAX_PATH];

_splitpath(theSCTDataFilename,theDrive,thePath,theFilename,theExtension);

您还可以使用像这样的更通用的标记化函数,它接受任何字符串、一个字符和一个 CStringArray..

void tokenizeString(CString theString, TCHAR theToken, CStringArray *theParameters)
{
CString temp = "";
int i = 0;

for(i = 0; i < theString.GetLength(); i++ )
{
if (theString.GetAt(i) != theToken)
{
temp += theString.GetAt(i);
}
else
{
theParameters->Add(temp);
temp = "";
}

if(i == theString.GetLength()-1)
theParameters->Add(temp);
}
}

CStringArray thePathParts;
tokenizeString("your\complex\path\of\strings\separated\by\slashes",'/',&thePathParts);

这将为您提供一个 CString 数组(CStringArray 对象),其中包含输入字符串的每个部分。您可以使用此函数解析主要 block ,然后解析次要 block ,只要您知道要拆分字符串的分隔符即可。

关于c++ - 如何将文件路径和参数的执行路径分开?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12384149/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com