私はLinuxにC++プログラムを書いています。私は現在のディレクトリを変更する必要があります。私はそれを変更したいディレクトリの名前を持っており、chdir()を使用したいと思います。しかし、引数はパスです(つまり、ディレクトリ位置を含むchar *)。私は完全な道を持っていませんが、ディレクトリの名前だけです。C++その名前が与えられたディレクトリへのパス
私はこの質問を見てきました:Changing the current directory in Linux using C++
はしかし、私は提案された解決策は、新しいディレクトリがカレントディレクトリのサブディレクトリである場合にのみ機能することを考えて - そう、それは私のために意味がありません。私のコンピュータに同じ名前の別のディレクトリがある場合は(私が間違っている場合は教えてください)。私はSubsirectoryにカレントディレクトリを変更したい場合は
私opitnionで-CurrentDirectory
|
- Subdirectory
|
- ... etc.
- AnotherDirectory
、chdir(Subdirectory.c_str())
が働くだろう:
は私が明確だかどうかわからないんだけど、確かに、ここでは一例です。しかし、chdir(AnotherDirectory.str())
ではありません(CurrentDirectoryとは何も共通していません)。 私はこの質問がすでにどこかで答えられなければならないことを知っていますが、私はそれを見つけることができません。
ありがとうございました!
まず
今後のC++ 17標準の標準ライブラリの 'boost :: filesystem'や新機能を確認してください。 –
[chdir](http://man7.org/linux/man-pages/man2/chdir.2.html) "現在の作業ディレクトリは相対パス名( '/'で始まっていないもの)を解釈するための出発点です。 "最初の絶対パスは '/'、 '../'は上に行く、 '../../'は2つ上がるなど – crashmstr
どのディレクトリを変更するのかはどうやって知りますか?その情報はどこから来たのですか?相対パスかそれに対する絶対パスのいずれかがあります。そうでなければ、同じ名前の別の場所にある何千ものディレクトリのいずれかに関連した名前があります。 – Galik