web-dev-qa-db-ja.com

現在のディレクトリを見つけるにはどうすればよいですか?

以前に正常に読み取ったファイルを読み取ろうとしています。ライブラリを介してそれを読んでいて、そのままライブラリに送信しています(つまり、「myfile.txt」)。私はファイルがworking/currentディレクトリから読み込まれることを知っています。

Current/workingディレクトリが何らかの形で変更されたと思います。現在/作業中のディレクトリを確認するにはどうすればよいですか?

14
lital maatuk

あなたがvisual-c ++タグを追加したので、私はそれを行うために標準的なwindows関数を提案します。 GetCurrentDirectory

使用法:

TCHAR pwd[MAX_PATH];
GetCurrentDirectory(MAX_PATH,pwd);
MessageBox(NULL,pwd,pwd,0);
24
monoceres

Boost filesystem ライブラリはクリーンなソリューションを提供します

current_path()
8
Dr G

使用する - _getcwd 現在の作業ディレクトリを取得します。

6
Hasturkun

少し前に私がプラットフォームにとらわれない答えを示します。

Cの「getcwd」関数からstd :: stringを返す方法

かなり長いですが、Nice C++インターフェースを使用して、想定されていることを正確に実行します(つまり、正確な方法ではなく文字列を返しますか?-(constchar*)。

getcwdの廃止に関するMSVC警告をシャットダウンするには、

#if _WIN32
    #define getcwd _getcwd
#endif // _WIN32
2
rubenvb

このコードはLinuxおよびWindowsで機能します。

#include <stdio.h>  // defines FILENAME_MAX
#include <unistd.h> // for getcwd()
#include <iostream>

std::string GetCurrentWorkingDir();

int main()
{
   std::string str = GetCurrentWorkingDir();
   std::cout << str;
   return 0;
}
std::string GetCurrentWorkingDir()
{
    std::string cwd("\0",FILENAME_MAX+1);
    return getcwd(&cwd[0],cwd.capacity());
}
0
IluxaKuk