IMAPIを使用して指定フォルダ以降を書き込むには?2

解決


みの  2005-07-07 02:21:25  No: 58201

Microsoftにて公開されていたIMAPIのサンプル(CD Burning Sample
Application )を使用してCD書き込みソフトを作成していますが、
フォルダ構成をCAtlListに保持してから、IStorageにして全てのフォルダ
構成ごと書き込み(RecordDisc())しようとすると、最後に
SetCurrentDirectoryを設定したディレクトリ内のファイルのみ
正常に書き込まれますが、それ以外のディレクトリのファイルは0バイトに
なってしまいます。

例)
FolderA
┣aaa.txt  ←SetCurrentDirectory
┗FolderB
  ┗bbb.txt
※この場合、aaa.txtは正常に書き込まれますが
  bbb.txtは0バイトで書き込まれます。

全てのディレクトリに対して、RecordDisc()を行う前にSetCurrentDirectoryを
設定することによって正常に書き込まれることがわかりましたが、
どうも邪道な気がしています。
(フォルダの数だけSetCurrentDirectory→RecordDiscといった感じです)

過去ログにてまこーじ14号さんの書き込みを拝見しましたが、
CAtlListを使用した方法で(Microsoftのサンプルに近い方法で)
作成したいのです。

CD書き込みにおいて、CAtlListを使用した方法で
フォルダ構成ごと正常に書き込む方法は無いでしょうか?
どなたかご存知の方いらっしゃいましたら、ご教授お願い致します。


PSB  2005-07-07 03:39:06  No: 58202

http://madia.world.coocan.jp/cgi-bin/Vcbbs/wwwlng.cgi?print+200506/05060089.txtに
関連しているのだろうと思われますが・・・。(うみさん?)

IMAPIサンプル中のFolderStorage.cppの308行目の

 HANDLE hFile = CreateFile( 
   file.m_csFilename,

 HANDLE hFile = CreateFile( 
  file.m_csPath,

に変えれば大丈夫です。

#SetCurrentDirectory()は忘れてください。


うみ  2005-07-08 07:37:33  No: 58203

PSBさんご回答ありがとうございます。
PSBさんのおかげで無事完成するとができました。
マイクロソフトのソースをわざわざ探っていただき本当ありがとうございました。

前回の質問で解決にしてしまいましたが、やはりフォルダー構成毎
焼きこむ必要ができてしまい、共同開発者に新たに質問を上げて貰うように依頼したのですが、結果的にマルチポストのような状態になっていしまいました。
申し訳ありません。以後このようなことがないように気をつけます。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加