問題タブ [std-filesystem]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - std::filesystem::path の最後のディレクトリを取得するには?
ディレクトリへのパスがあり、C++ を使用してそのディレクトリの名前を取得したいと考えていますstd::filesystem
。たとえば、パスが次の場合:
「my_directory」を取得したいと思います。
私はこの回答を見て、最初は で機能したものが で機能してboost::filesystem
いないと想定していましたがstd::filesystem
、それは正しくない可能性があります。boost::filesystem
いずれにせよ、ファイルで終わるパスについて具体的に尋ねているため、これが重複しているとは思いません。
文字列の取得または取得、セパレーターでの分割など、他にもいくつかの解決策を考えることができますがfake_path.end() - 2
、どれも以前ほど単純ではありfake_path.filename()
ません。
.filename()
ファイルのパスを呼び出すのとほぼ同等の、ディレクトリのパスの最後の部分を取得するクリーンな方法はありますか?
c++ - c++ 17 filesystem::recursive_directory_iterator() は、Mac では no such directory というエラーを返しますが、Windows では動作します
構成
- macOS: 10.15.5
- クロスコード: 11.5
- クラン: 11.0.3
- プロジェクトは c++17 に設定されています
私はmacOSが初めてで、簡単な問題を解決しようとしています..
このコードでエラーが発生します(xcode、clion、cmakeで試しました)-
問題
ここで、データフォルダーは手動で作成されるか、自動で作成されます。その中にランダムファイルが生成されます(サブディレクトリファイルも)。これらすべてのファイルのパスと名前が必要です。
追加情報
このコードは問題なく動作します
c++ - std::filesystem::canonical と std::filesystem::absolute が機能しない
コードのコンパイラとして C++2a 標準の Visual Studio 2019 を使用しています。
標準的であろうと絶対的であろうと、必要な出力は得られません。コマンド全体を引数として渡すのではなくcd
、そのフォルダーまでコマンドを実行します。つまり、
で出力std::filesystem::canonical
画像でわかるように、標準コードの出力はありません。
で出力std::filesystem::absolute
画像でわかるように、絶対コードの出力はありません。
入力: 私が実行しているファイル。基本的に/. 正規パス/絶対パスに変換します。
私も絶対に試してみましたが、同じ出力が得られました。
更新: ブースト ファイルシステムを使用して同じコードを試しました。出力は得られましたが、正しくありませんでした。
C:\dasfsa/dsfafsa/sdfsa/a.exe
これは使用できません。その 1 つのバックスラッシュを手動で変換することはできますが、それがある種の難解な機能なのかバグなのかはわかりません。また、バグの場合は、そのスラッシュがどこでどのように変更されるのかわかりません。
で出力boost::filesystem::canonical
画像でわかるように、boost::canonical コードの出力はありません。