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


HSPTV!掲示板


未解決 解決 停止 削除要請

2012
0104
unzip.dllを使ったときのエラー3解決


リンク

2012/1/4(Wed) 21:45:46|NO.44043

#uselib "unzip32"
#func UnZip "UnZip" nullptr, str, int, int
#func UnZipGetFileCount "UnZipGetFileCount" str
#func UnZipGetVersion "UnZipGetVersion"
#include "hspext.as"
sdim path,512

#uselib "ole32.dll"
#func global CoTaskMemFree "CoTaskMemFree" int
#uselib "shell32.dll"
#cfunc global SHBrowseForFolder "SHBrowseForFolder" var
#func global SHGetPathFromIDList "SHGetPathFromIDList" int, var

#module
#deffunc seldir var dirpath, str msg, local h, local ttl, local binfo
sdim ttl, strlen(msg) + 1
ttl = msg
binfo = hwnd, 0, varptr(dirpath), varptr(ttl), 0x0001, 0, 0, 0
h = SHBrowseForFolder(binfo)
if h = 0 : return 0
SHGetPathFromIDList h, dirpath
CoTaskMemFree h
return 1
#global
; unzip32.dllが存在するか簡易チェック
if varptr(UnZipGetVersion) = 0 {
dialog "unzip32.dll が見つからん"
end
}
sdim filepath, 256
sdim outpath, 256
sdim szOutput,1024

filepath="None"
outpath="None"
button "解凍", *unpack
button "情報", *info
button "ファイル数", *count
button "バージョン", *version
pos 0,120
objsize 100, 24
button "ZIPファイル選択", *sentaku1
button "出力フォルダ選択", *sentaku2
*a
redraw 2
color 255,255,255:boxf
color 0,0,0
pos 110,123
mes "ZIPファイル : "+filepath+""
pos 110,145
mes "出力フォルダ : "+outpath+""
wait 1
redraw 1
goto *a
stop
*sentaku1
dialog "zip" , 16 , ""
if stat!0:filepath=refstr
goto *a
*sentaku2
sdim dir, 260
seldir dir, "フォルダを選択してください"
if stat {
dialog dir, , "選択フォルダ"
} else {
dialog "フォルダは選択されませんでした"
}

if stat!0{
i = 0
outpath=dir
}
goto *a
*unpack
if filepath!"None"{
if outpath!"None"{
UnZip "\""+filepath+"\" \""+outpath+"\""
dialog "解凍 : "+stat
}
}
goto *a
*info
*count
*version

こんな感じで書きました。
他の場所を参考に作ったので仕組みはあまりわかってません。
そして本題行きますが、これでフォルダー・ファイルの場所を選択したときに特定のファイル・フォルダーを選ぶと解凍しますが、それでないとエラー(32781等)が出ます。
その特定というのが、ファイルはわからなく、フォルダーはC:\以外はエラーになります。
エラーの原因を教えてくれませんか?お願いします!!



この記事に返信する


XBG|YAMANOTE231103(PC)

リンク

2012/1/4(Wed) 23:40:18|NO.44090

ファイルを開く段階での問題だったら、refstrをチェックしてZIPかどうかをチェックすればいいと思います。

(またわけわからんスパムが大量投下されてる…)



リンク

2012/1/5(Thu) 10:09:23|NO.44097

スクリプト見ればわかると思いますがボタンの隣りに表示されるので、拡張子がzipなのはわかります。
あと解凍しようとするとエラーがでるんです。

スパムめっちゃあったけどもう消えてますね



リンク

2012/1/5(Thu) 10:40:16|NO.44098

すいません解決しました。
原因はフォルダ名の最後に¥がついてないだけでした。
答えてくれた XBG|YAMANOTE231103(PC) さんどうもありがとうございます。



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