問題タブ [boost-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++ - ブースト: copy_file はアクセスが拒否されて失敗しますが、権限の問題はありません
ディレクトリ内のすべてのファイルをサブディレクトリにコピーしてから削除するために、次のルーチンを作成しましたが、誤解を招くように見える copy_fail でアクセスが拒否され続けます。パスが正しく、ファイルが存在し、作成されたばかりの宛先ディレクトリにアクセス許可が読み取り専用ではありません。
問題の原因を突き止める方法について何か提案はありますか?
デバッグしようとしましたが、boost::filesystem のソース コードがありません。
どんな提案でも大歓迎です。
c++ - Boostライブラリを使用した最初のプログラムに関する質問(例外、ロングパス)
最初のプログラムをC++で作成しようとしていますが、Boostライブラリを使用する必要があります。ディレクトリツリーを再帰的に調べて、最新のファイルと最も古いファイルの日付を返すプログラムを作成しようとしています。
これが私が今いるところです:
私が遭遇した問題は次のとおりです。
1.長すぎるパス(256文字または260文字を超えると思います)に遭遇すると、エラーが発生します:
2.「システムボリューム情報」などのアクセスできないディレクトリに遭遇すると、さらに2つあります。
上記のコードを変更して、Windowsでロングパス名を処理するにはどうすればよいですか?本当に難しいですか?たとえば、Total Commanderなどの一部のプログラムでは、長いパスで問題は発生しませんが、多くのプログラムでは問題が発生します。
より重要な質問は、上記のコードを実際にどのように機能させることができるかということです(長いパスを気にしないでください)。問題は、for ( ; it_dir != it_end; ++it_dir )
アクセスできないディレクトリに遭遇すると、例外がスローされることです。この例外をキャッチするには、外部キャッチを定義する必要があります。しかし、私が外にいるときは、forサイクルが継続していないことを意味します。つまり、上記のコードは、最初のアクセスできないフォルダまで機能することを意味します。そこで例外をスローして終了します。
例外がスローされた後、 forサイクルに戻る方法はありますか? 私の考えは、catch内で++ it_dirを実行し、forサイクルを再開することです。しかし、どうすれば再開できますか?シェル別の機能に移動しますか?
私の理解がはっきりしない場合は申し訳ありませんが、それは私の最初のプロジェクトです。これまでC++を使用したことはありませんが、最善を尽くしています。
編集:
他に答えはありますか?問題は、「アクセスできない」種類のエラーのサイクル内でキャッチが機能していないことです。どうすれば内部で機能させることができますか?これがエラーを生成する最小のコードです。forサイクル内でこのエラーをキャッチする方法はありますか?または、it_dir ++でアクセスできない要素をスキップした後も続行できるようにキャッチしますか?
c++ - C++: ファイル システムをブーストして、特定の時間よりも古いファイルのリストを返す
Boost::FileSystem
Linux プラットフォームで実行されている C++ でライブラリを使用していますが、次の質問があります。
特定の日時よりも前に変更されたファイルのリストが必要です。boost::FileSystem
次のような方法が提供されているかどうかはわかりません。
はいの場合、サンプルコードを提供していただけますか?
boost - ブースト ファイルシステム イテレータ
boost::filesystem を学習し始めたところです。
- directory_iterator と basic_path::iterator の違いは何ですか?
- イテレータはファイルを辞書順で繰り返しますか?
ありがとう
c++ - boost :: filesystemでcopy_fileを使用する方法は?
ディレクトリから別のディレクトリにファイルをコピーしたいのですが、プログラムが何らかの理由で常に中止されます。これを以前に行った人が、何が問題だったのか教えてくれますか?そして、どうすれば例外がスローされたのかをキャッチできcopy_file
ます。ブーストサイトを確認しましたが、例外に関する関連情報が見つかりませんでした。
ありがとう、
c++ - ホームディレクトリにフォルダを作成するにはどうすればよいですか?
ディレクトリを作成したいpath = "$HOME/somedir"
。
を使用してみましboost::filesystem::create_directory(path)
たが、失敗します。この関数はシステム変数を展開しないようです。
どうすれば最も簡単な方法でそれを行うことができますか?
(注:私の場合、文字列path
は定数であり、変数が含まれているかどうかはわかりません)
編集:私はLinuxに取り組んでいます(ただし、近い将来、アプリをWindowsに移植する予定です)。
gcc - Boost.Filesystem とのリンクに関する問題
boost::filesystem の関数を使用して、現在の作業ディレクトリを変更しようとしています (必要に応じて作成します)。リンク エラーが発生します。
しかし、ブーストライブラリに対してリンクしていますか??!? 私は以下を使用します:
そして、私はそれがそれらを見つけることができることを知ってい-Wl, -t
ます:
FWIW: gcc を使用してUbuntu 4.4.3-4ubuntu54.4.3
います。
c++ - directory_entry の比較演算子がありません
次のプログラムを検討してください。
これは、このエラーの 17 のバリエーションでコンパイルに失敗します (Visual Studio 2005、Windows XP SP3)。
ドキュメント(私はまだBoost 1.45を使用しています)によると、に対して定義された比較演算子がありますdirectory_entry
が、私もコンパイラもそれらを見つけることができません(ヘッダーを手動でチェックしました)。私は何かを見落としていますか?これらのオペレーターを無効にするオプションを設定することで、ブーストを構築するときに間違いを犯した可能性がありますか? ドキュメントは間違っていますか?誰でも説明できますか?
c++ - boost::filesystem v3 - パスの正しいケース
こんにちは、指定された Windows パスの大文字と小文字を正しくする効率的な方法はありますか?
(Windows API なし!)