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を使用した方法で
フォルダ構成ごと正常に書き込む方法は無いでしょうか?
どなたかご存知の方いらっしゃいましたら、ご教授お願い致します。
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()は忘れてください。
PSBさんご回答ありがとうございます。
PSBさんのおかげで無事完成するとができました。
マイクロソフトのソースをわざわざ探っていただき本当ありがとうございました。
前回の質問で解決にしてしまいましたが、やはりフォルダー構成毎
焼きこむ必要ができてしまい、共同開発者に新たに質問を上げて貰うように依頼したのですが、結果的にマルチポストのような状態になっていしまいました。
申し訳ありません。以後このようなことがないように気をつけます。
ツイート | ![]() |