获取当前程序的运行目录
时间: 2024-05-06 10:17:49 浏览: 32
在 Python 中,可以使用 `os` 模块的 `getcwd()` 函数来获取当前程序的运行目录,示例如下:
```python
import os
current_dir = os.getcwd()
print(current_dir)
```
运行结果类似于:
```
/home/user/projects/my_project
```
相关问题
C#获取当前程序运行目录
在C#中,有几种方法可以获取当前程序运行(也称为工作)目录:
1. 使用`AppDomain.CurrentDomain.BaseDirectory`: 这会返回应用程序的安装目录,通常带有`\`结尾[^1]。
```csharp
string baseDirectory = AppDomain.CurrentDomain.BaseDirectory;
```
2. 使用`System.Threading.Thread.GetDomain().BaseDirectory`: 和上述方法效果相同,获取应用程序的根目录。
```csharp
string threadDirectory = System.Threading.Thread.GetDomain().BaseDirectory;
```
3. 使用`Environment.CurrentDirectory`: 返回的是当前执行线程的工作目录,但不包括文件系统的根目录,一般对应于`.exe`文件所在的目录[^2]。
```csharp
string currentDirectory = Environment.CurrentDirectory;
```
4. 或者使用`System.IO.Directory.GetCurrentDirectory`: 同样获取当前执行线程的工作目录,不含根目录。
```csharp
string ioDirectory = System.IO.Directory.GetCurrentDirectory();
```
C++控制台获取当前程序工作目录
在C++中,如果你想要获取当前运行程序的工作目录,可以利用`<filesystem>`库或者通过系统API函数。以下是使用`<filesystem>`库的例子:
```cpp
#include <filesystem>
namespace fs = std::filesystem;
std::string currentDirectory = fs::current_path().string();
```
如果你的项目还不支持C++17及以上版本,可以使用Boost库或者Windows平台下的`GetModuleFileName`和`GetCurrentDirectory`函数:
```cpp
#include <windows.h>
#include <boost/filesystem.hpp>
std::wstring GetCurrentWorkingDirectory()
{
wchar_t buffer[MAX_PATH];
DWORD size = GetModuleFileName(NULL, buffer, MAX_PATH);
if (size == 0)
throw std::runtime_error("Failed to get current directory");
return buffer;
}
std::string getCurrentDirectoryFromWstring(std::wstring wstr)
{
return boost::filesystem::wpath(wstr).string();
}
// 获取并转换为std::string
std::string currentDirectory = getCurrentDirectoryFromWstring(GetCurrentWorkingDirectory());
```