VC++6 で簡単なプログラムを作成しており、その入力として、ダイアログで任意のフォルダパスをユーザに指定させます。
ここで、Win32 API の GetOpenFilename() は、ユーザにフォルダを指定させることができるでしょうか?
色々組んではみたのですが、上記関数ではどうしてもフォルダの指定ができなかったため、フリーで簡単ライブラリと評判の(?) http://www.fox-toolkit.org/ FOX Toolkit を試してはいます。
一応それなりに FXFileDialog::getOpenDirectory() は動作してくれるのですが、パスの中に日本語があると、返却される文字列がおかしくなります。これはどうも UTF-8 でエンコーディングされているようで、自前で UTF-16 に変換し更に wcstombs() などを使用して Shift_JIS (Windows-31J) に変換したら通るようになったのですが、半角カナはダイアログ内の処理自体が通してくれないようで、ダイアログの「OK」ボタンが押せなくなります。これは何か対処方法があるでしょうか。
そのほか、何かほかに良い方法があったら教えてください。
No.2ベストアンサー
- 回答日時:
★OS は Windows ですよね。
・過去に似たような質問がありました。
・http://oshiete1.goo.ne.jp/qa2711037.html→『ディレクトリを選択するコモンダイアログボックス』
・回答 No.2 にサンプルを載せてあるので参照して下さい。
・それでユーザにフォルダを選択させるには、シェル関数の『SHBrowseForFolder()』を使います。
『GetOpenFilename()』はファイル名の選択ですので、フォルダ名の選択は出来ません。
・『FOX Toolkit』についてはアドバイスできませんので、SHBrowseForFolder() 関数で実現してみたら
よいと思います。これならば『日本語』にも対応していると思います。→確認していませんが…。
・以上。おわり。→参考にして下さい。
参考URL:http://oshiete1.goo.ne.jp/qa2711037.html
すみません、既出でしたか。検索が足りませんでした。
SHBrowseForFolder を使用して半角カナを含めた日本語のパス名も取得することができました。ありがとうございます。
ただ、ちょっと GetOpenFileName() とは見た目が違ってしまうのですね。
No.1
- 回答日時:
一般的には、SHBrowseForFolder()を使います。
使い方は、探せばたくさん出てきます。
http://www.google.com/search?hl=ja&lr=lang_ja&ie …
ただし、このAPIはWin95/98/NTといった古いOSの場合、
IEのバージョンによって使えなかったり、機能が制限されていたりします。
(バージョン5.0以降であれば問題ありません)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 動かなくなってしまった古いVBAを動くようにしたい 8 2022/09/20 13:57
- Visual Basic(VBA) シートをコピーする下記記述でダイアログを用いた記述がわかりません?( A = Dir(ThisWor 4 2022/08/22 12:26
- Visual Basic(VBA) 集めたシートのシート名を変更したい。 下記のコードでサブフォルダにあるファイルのSheet3を集めて 6 2022/08/23 10:38
- Visual Basic(VBA) 入力ボックスが繰り返しポップアップして止まらない。 下記コードでファイル名の変更をしたいのですが、変 1 2022/09/08 11:27
- Excel(エクセル) 【VBA】ファイルパスに半角スペースが入ると、VBAが動かない 5 2022/08/04 20:52
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- Excel(エクセル) 【マクロ】フォルダAからダBへファイルを、ファイルの更新日時の条件で、1つづつ移動するには? 3 2022/08/25 09:56
- Visual Basic(VBA) VBA 参照先で選んだファイルをコピーし、出力先に別名で保存したい 8 2022/05/13 20:37
- C言語・C++・C# Seleniumで「ファイルを開く」ダイアログボックスのフォルダ指定する方法を教えてください。 1 2022/05/09 07:38
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/06 17:46
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
ディレクトリを選択するコモンダイアログボックス
C言語・C++・C#
-
CStringのFindで文字列検索を行いたいのですが
C言語・C++・C#
-
ダイアログの上のテキストボックスの、初期値を設定する方法が分かりません・・・・
C言語・C++・C#
-
-
4
エディットボックスのテキストが表示されないのはなぜですか
C言語・C++・C#
-
5
処理をとめるキャンセルボタンのあるダイアログ作成
C言語・C++・C#
-
6
絶対パスからのファイル名の切り離し
C言語・C++・C#
-
7
エディットボックスの入力制限について
C言語・C++・C#
-
8
コンボボックス表示文字列を取得する場合
C言語・C++・C#
-
9
ファイルやディレクトリの存在確認を行う方法
C言語・C++・C#
-
10
CFileDialogの最初のディレクトリ設定
C言語・C++・C#
-
11
visual studio でインデントを自動的に揃えるショートカットキー
その他(プログラミング・Web制作)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Windows10でコマンドプロンプト...
-
VBA 最新のフォルダ取得
-
ファイル名と同名のフォルダを...
-
VBA フォルダ名に特定の文字を...
-
windowsでテキストファイルの各...
-
Dreamweaverでイメージを挿入す...
-
Excelのハイパーリンクについて...
-
Excel VBA で フォルダ名の一部...
-
フォルダにリンクを貼りたい
-
多量のファイルをフォルダに自...
-
ExcelVBAでフォルダへのハイパ...
-
ディレクトリ名変更してコピー...
-
ExcelのVBAでフォルダ指定がで...
-
バッチファイルで指定フォルダ...
-
フォルダ選択ダイアログ:ネッ...
-
Hitachi Embedded Workshop (HE...
-
【マクロ】フォルダAからダBへ...
-
保存先のフォルダ名を指定した...
-
Access VBA で フォルダ権限...
-
デスクトップの画像をhtmlに表...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Windows10でコマンドプロンプト...
-
パス名に2バイト文字(マルチバ...
-
ファイル名と同名のフォルダを...
-
VBA 最新のフォルダ取得
-
Excelのハイパーリンクについて...
-
デスクトップの画像をhtmlに表...
-
ディレクトリ名変更してコピー...
-
VBA フォルダ名に特定の文字を...
-
バッチファイルで指定フォルダ...
-
フォルダ内のPDFファイル名を変...
-
Access VBA で フォルダ権限...
-
excelマクロ 冒頭3文字が一致す...
-
【マクロ】ファイル名の日付に...
-
フォルダにリンクを貼りたい
-
会社のネットワーク上のファイ...
-
多量のファイルをフォルダに自...
-
C ファイル出力で、フォルダが...
-
保存先のフォルダ名を指定した...
-
vbsで選択ダイアログを表示した...
-
Excel VBA 同じ名前のフォルダ...
おすすめ情報