0

データベースに接続するプロジェクトに Borland C++ Builder を使用しています。

USBドライブへのバックアップを行う構成があります。現在のアプローチの問題点は、ドライブがエンド ユーザーによって手動で構成され、時々混乱することです。たとえば、人々が USB ドライブを別のポートに移動し、別の文字を取得すると、バックアップ プロセスが機能しなくなります。補足として、クラウドなどにバックアップするための他の「より良い」プロセスがありますが、一部の場所ではインターネットにアクセスできず、RAID で実行されていません...そのため、USB にバックアップすると、 HD クラッシュから猶予を与えます。

この問題を解決するためにコーディングを行うことを望んでいます。OS(Windows 8/7/XP)のハンドルを取得し、マシン上のドライブを識別できることを望んでいます。それらを取得したら、それらを反復処理してパスの場所を確認できます (たとえば、ファイル マーカー。ファイルが存在する場合は、提供した USB であることがわかります)。それができたら、バックアップを作成できます。

最悪のシナリオとして、26 文字すべてを反復処理して各ドライブをテストすることができます。ただし、これを学習の機会として使用しており、OS を処理できるようにしたいと考えているため、実行できるチェック/失敗の数を減らしています。その上、誰かがより良いアプローチを持っているかどうか知りたいです:)

4

1 に答える 1

2

26 個のドライブ文字を繰り返すよりも高度なことをしようとしても、得られるものはあまりないと思います。

マーカー パスが存在するかどうかを確認する前に、 への呼び出しを追加してGetDriveType、戻り値を と比較することができますDRIVE_REMOVABLE。これにより、コードが CD/DVD ドライブをスピンアップしたり、マップされた共有の場合にネットワークにアクセスしたりしないようになります。

于 2013-03-20T14:33:50.467 に答える