【发布时间】:2016-07-23 00:35:30
【问题描述】:
我正在经历学习c++的过程,所以我正在制作一些程序/工具来在计算机上进行一些简单的操作。在这个例子中,我正在创建一个程序来定位计算机上的浏览器(它将用于清除浏览器 cookie 等)。可能有更高级的方法可以更有效地执行此操作,但我目前正在尝试使其尽可能简单。
到目前为止,我正在尝试找出目录“C:\Program Files (x86)\Google\Chrome”是否存在。我使用getenv ("Program Files (x86)" 获取程序文件目录的地址,但之后如何添加其余地址?
我不能使用 + 运算符进行连接,因为变量是 const char *(bool PathIsDirectory() 需要 const char * 作为参数)。
std::cout << "Searching for browsers..." << std::endl;
const char *chromePath;
chromePath = getenv ("ProgramFiles(x86)");
bool result = PathIsDirectory(chromePath);
if(result == true)
{
std::cout << "-- Google Chrome - FOUND" << std::endl;
}
else
{
std::cout << "-- Google Chrome - NOT FOUND" << std::endl;
}
【问题讨论】:
-
你真的能用
getenv得到ProgramFiles的路径吗?getenv用于检索环境变量。 -
@ForceBru 据此耶:stackoverflow.com/questions/9594066/…
-
我怀疑
ProgramFiles(x86)表示一个有效的环境变量。 -
使用
std::string存储结果而不是const char*支持+ -
您可以使用
string.c_str()获取const char *用于C api。
标签: c++