2013-04-09 11 views
5

私はターゲットがリムーバブルディスクやネットワークドライブ上にある場合、特定のイベントでファイルを作成する必要のあるクロスプラットフォームアプリケーションを作成しています。ローカルハードドライブ上の一時フォルダにファイルを作成し、それをターゲットに移動して、ターゲットパスを削除した場合のデータ損失を回避します。クロスプラットフォームのアプローチでドライブの種類を判断する方法

私の質問は、どのようにクロスプラットフォームのアプローチでパスの種類を指定する必要がありますか?

+0

「指示する」とはどういう意味ですか? – didierc

+0

そしてなぜあなたは気にしますか?書き込み操作中にターゲットパスが削除された場合は、バッファをフラッシュするときに何らかのエラーポップアップが表示されます。 – filmor

+0

とにかくtempディレクトリからコピーをしないのはなぜですか? – stdcall

答えて

0

これは信頼性と移植性の高い方法で実現するのが非常に難しいと思います。ドライブがローカルかどうかを調べるには、すべてのプラットフォームにいくつかの方法があると確信していますが、はるかに単純で信頼性の高い解決策は、ベースファイルシステムが何であれ、ローカルの一時ファイルを作成することだと思います。

+0

私のサービスは本当に負荷が高く、常にローカルドライブにファイルを作成し、それをターゲットドライブに移動して、ほとんどの場合は不要なサービスを余分に作成します! – BigBoss

0

QtMobilityを使用している場合は、QSystemStorageInfoクラスを使用できます。

+0

私は 'Qt'を使用していません、私は' std :: iostream'と 'boost :: filesystem'を使用しています – BigBoss

+0

その場合、それは厳しいものになるでしょう。 AFAIK Boost.FileSystemは仕事に就いていません。サポートされているプラ​​ットフォームごとに独自のプラットフォーム固有のコードを記述するか、または常に一時ファイルに書き込んでから、その場所に移動するという単純なアプローチをとる必要があります。 –

関連する問題