私は位置を設定するときにちょうど良いSetFilePointerEx
を使用することができました。SetFilePointerExを使用して物理ディスクの最後に移動するにはどうすればよいですか?
SetFilePointerEx(PD, 512, @PositionVar, FILE_BEGIN);
SetFilePointerEx(PD, 0, @PositionVar, FILE_CURRENT);
両方とも動作します。私はポジションを設定し、現在のポジションをチェックすることさえできます。しかし、を2番目のパラメータが何であるかにかかわらずドキュメントごとに設定した場合、3番目のパラメータのポインタを提供するかどうかは、多くの他の操作が失敗せずに有効なハンドルであっても失敗します。例えば
:私は置くものは何でも
SetFailed := SetFilePointerEx(PD, 0, @PositionVar, FILE_END);
SetFailed := SetFilePointerEx(PD, 0, nil, FILE_END);
、それが失敗します。私は物理ディスクのハンドルを使って作業しています。 SetFilePointer
はうまく動作しますが、私が望むよりもちょっとしたトラブルです。
これは世界の終わりではありませんが、何が起こっているのですか?
ニース編集簿、タイトルは必ずしも正しいとは限りません。私は物理的なメディアからのスペースの量を取得しようとしていた。理論的にはこの方法で行うことができますが、もはや有効な方法ではありません。誰かがこの特定のQ&Aセッションから何か助けを見つけることに疑いがあるにもかかわらず、私は古いタイトルで問題を誰かのための用語を検索しますが、私は投稿をきれいに感謝します。投票した人のおかげで、私は最終的に投票することができます:) – SuicideClutchX2
@Suicide、あなたはこの質問を持っている答えを読んでください:http://stackoverflow.com/questions/4567422/私はすでにあなたにSetFilePointerは動作しないと言ったFILE_ENDとディスクデバイスでは、int64を使用してファイルポインタをどこにでも移動できるルーチンを提供しました。デビッドは、Hackyコードを使用せずにデバイスサイズを取得する優れた方法を示しました。なぜ同じ質問をもう一度する必要がありますか? –
は改正前の方が良かった –