gpt4 book ai didi

c++ - 如何使用不在源代码文件夹中的程序?

转载 作者:行者123 更新时间:2023-11-28 04:01:11 31 4
gpt4 key购买 nike

例如:我在 MS DOS 上,我在文件夹 C:\Documents and Settings\Programs 中有一个源代码。我可以让我的源代码使用随机文件夹中的程序(例如 gnuplot)吗?

最佳答案

http://www.codeproject.com/KB/system/newbiespawn.aspx

ShellExecute 将查看 PATH 环境变量,因此您无需指定完整的 PATH。现在,如果它真的是一个随机位置并且它甚至不在 PATH 环境变量中,那么我猜你运气不好。

如果他们甚至不在 PATH 中,那么您必须在 candidates 文件夹中搜索它。这是关于如何 traverse a file system 的示例代码C++ 中的路径。

还有一个使用 Boost 的例子:

目录列表.h

#ifndef DIRECTORYLIST_H_INCLUDED
#define DIRECTORYLIST_H_INCLUDED
#define BOOST_FILESYSTEM_NO_DEPRECATED

#include <iostream>
#include <list>
#include <string>


class directoryList {

public:
directoryList();
~directoryList();
std::list<std::string> getListing(std::string path);
};
#endif // DIRECTORYLIST_H_INCLUDED

目录列表.cpp

#include "boost/filesystem/operations.hpp"
#include "boost/filesystem/convenience.hpp"
#include "boost/filesystem/path.hpp"
#include "boost/progress.hpp"

#include "directoryList.h"

using namespace std;
namespace fs = boost::filesystem;

directoryList::directoryList() {}
directoryList::~directoryList() {}

list<string> directoryList::getListing(string base_dir) {

list<string> rv;
fs::path p(base_dir);

for (fs::recursive_directory_iterator it(p);
it != fs::recursive_directory_iterator(); ++it) {

string complete_filename = it->path().string();
rv.insert(rv.begin(),complete_filename);

}

return rv;

}

使用示例:

directoryList *dl = new directoryList();
filenames = dl->getListing("C:\\Program Files");
//search for the file here, or modify the getListing to supply a filter

关于c++ - 如何使用不在源代码文件夹中的程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/427693/

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