電子書籍の厳選無料作品が豊富!

ファイルをセーブ、ロードするにあたってGetSaveFileNameを使用しているのですが初期ディレクトリが設定できなくて困ってます。

OPENFILENAME ofn;
ofn.lpstrInitialDir = L"\\Storage Card\\test001\\";で
Location:には「Storage Card」が入るのですがFolder:に「test001」が入りません(test001フォルダは存在しています)

L"\\Storage Card\\test001"と指定すると「test001」はファイル名として認識されてしまいます。

L"\\Storage Card\\test001\\file.txt"と指定すると設定できますがファイル名までは設定したくないです。

環境は、、、
開発 vc++ win32スマートデバイスプロジェクト
SDK Windows Mobile 5.0 Pocket PC VGA Emulator
です。
よろしくお願いします。

A 回答 (2件)

Windows Mobile6.0 Pro でも同じ症状です



ofn.lpstrFileが指す先の先頭が Null文字の場合
ofn.lpInitialDirの最後\以降をファイル名だと誤認するようです
このとき Folder:には 何も設定されません
    • good
    • 0
この回答へのお礼

aris-wizさん、redfox63さんありがとうございました。

残念ですがとりあえず上記の妥協案をとることにします。
もしかしたら、gsGetfile.dllを使えばいいかなと思って使い方を調べてます。

回答いただきありがとうございました。

お礼日時:2008/10/31 19:33

>L"\\Storage Card\\test001\\file.txt"


これで出来るのが謎ですが。。。
パスに空白があるときはダブルクォートで囲う必要があります。
L"\"\\Storage Card\\test001\""としてみたらどうなりますか?

この回答への補足

aris-wizさんご返答ありがとうございます。

試してみたところ
Name:(ファイル名)に「test001"」と入っただけでした。
Storage CardもLocation:に入らなくて認識されていないようです。

今、妥協案としてできなかったらName:にデフォルトでなにか値を入れようか思案中です。
今日一日やってみて解決しないようであればこの案で行こうかと思います。

補足日時:2008/10/31 10:05
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!