質問: apiの動きについて windowsのapiの動きについての質問です。 ファイルをコピー・移動するときや外部に送信する際に createfileを呼び出しているようなんですが、これは 一度ファイルをオープンしてからコピーなり送信なりの 操作を行っているということなんででしょうか? createfileという関数については、ファイルの作成・開く という動作をするものとしてしか認識してないので 内部の動きがよく分からないのです。 ちなみにcreatefileの説明はこちらです。 http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpfileio/html/_win32_createfile.asp どなたか詳しい方、ご教授願います。
回答: ★『createfile』について ・この関数はファイルを新規作成する以外に、ファイルの内容を読み書きするときに必ず最初に 呼び出します。そして、この関数でファイルをアクセスするための『ハンドル』=オブジェクト を戻り値で返します。以後、このハンドルを利用してファイルサイズ、属性、コピーなどの さまざまな操作を行い、ファイル操作の最後に『closehandle』でハンドルを閉じます。 ・しかし、ファイルの移動はドライブが違うときはコピー処理になるため、『createfile』で 『オープン』→『内容を別ドライブへ転送』→『クローズ』という処理を行いますが、同一の ドライブの移動は『パス名』のリネームによってファイルが移動するので『createfile』での 『オープン』処理は行いません。 ・また、『createfile』はファイル以外にも多数のデバイスを操作できます。→この辺の説明は 回答者 no.1 さんが説明していますね。 ・よって、『createfile』関数はファイル操作を行うための『ハンドル』を取得する関数です。 ・以上。おわり。