HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2008
0608
飛角フォルダのD&D3未解決


飛角

リンク

2008/6/8(Sun) 23:38:47|NO.16591

ttp://yokohama.cool.ne.jp/chokuto/advanced/dragdrop.html
上記ちょくとのページにてファイル名の取得は出来るようになったのですが、フォルダをD&Dすると
フォルダ名だけ取得されてフォルダ内のファイル名が取得されません。

フォルダをD&Dした時に、そのディレクトリ以下全てのファイル名を取得するにはどうすれば良いのでしょうか?
また指定した拡張子のみ取得する方法はありませんか?

宜しくお願いします。



この記事に返信する


たこ

リンク

2008/6/9(Mon) 00:00:08|NO.16592

D&Dしたときにhspextのdirlist2系命令を使えばできます
が、D&Dされたものがファイルかフォルダかを判定してから使ってください



飛角

リンク

2008/6/9(Mon) 22:06:03|NO.16622

ありがとうございます。何とかできました。
ファイルサイズを追加してみましたが、プログラム的にこれで良いのでしょうか
複数の拡張子を指定するとなると、なんだか見づらいというか、お粗末というか…
簡素化する方法はありますか?モジュール化すれば良さそうという気がしますが、良くわかりません。
出来ればサンプルお願いします。

#include "hspext.as" #uselib "shell32.dll" #func DragAcceptFiles "DragAcceptFiles" int,int #func DragQueryFile "DragQueryFileA" int,int,int,int #func DragFinish "DragFinish" int #define WM_DROPFILES 0x0233 title "このウィンドウにファイルをドロップして下さい。" oncmd gosub *OnDropFiles,WM_DROPFILES DragAcceptFiles hwnd,1 if stat == 0 { dialog "設定に失敗しました。",1,"エラー" end } stop *OnDropFiles hDrop = wparam DragQueryFile hDrop,-1,0,0 sdim filename,260 repeat stat DragQueryFile hDrop,cnt,varptr(filename),260 exist filename if strsize=-1 { mes filename chdir filename dirlist2h 5, dirlist2 d_size,"*.bmp",1 sdim d_file1,d_size+1 dirlist2r d_file1 dirlist2 d_size,"*.jpg",1 sdim d_file2,d_size+1 dirlist2r d_file2 pos 20 mes d_file1+d_file2 pos 0 }else{ mes filename+","+strsize } loop DragFinish hDrop chdir dir_exe return 0



飛角

リンク

2008/6/9(Mon) 22:12:29|NO.16623

良く考えたら、普通に.as等の意図していないファイルをD&Dしたら認識されてしまいますね。

回避策があればおしえてください。



ONION software Copyright 1997-2021(c) All rights reserved.