〜 ファイル 〜
フォルダを削除1 (要KERNEL32.DLL)

ファイルはdelete命令で削除可能ですがフォルダは標準命令で削除することができません。
API関数のRemoveDirectoryを使用することで指定したフォルダを削除できます。
ただし、削除対象フォルダ内にファイルやサブフォルダが存在する場合には削除できませんので、
内部のファイル・フォルダを削除した後に対象フォルダを削除するか、別の方法で削除してください。
無事に削除ができると、API関数は1を、失敗すると0を返しますので、
この値を受け取り、削除ができたか否かを確認してください。
尚、HSP3は自動的にシステム変数statにセットされますが、HSP2ではセットされませんので
下記のサンプルのようにll_系命令の結果を取得するll_ret命令を使用して確認してください。
	

deldir 対象フォルダ
対象フォルダ削除対象のフォルダパスを指定する。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
	ll_libload kernel, "kernel32.dll"
	ll_getproc RemoveDirectory, "RemoveDirectoryA", kernel

#module
#deffunc deldir str
	mref dir, 32
	mref stt, 64
	ll_getptr dir : ll_ret prm
	ll_callfunc prm, 1, RemoveDirectory@ : ll_ret prm : stt = prm
	return
#global

	sdim dir, 512
	pos  10, 10 : mes "削除フォルダ"
	pos 120, 10 : input dir, 200
	pos 320, 10 : button "実行", *remove
	stop

*remove
	dirlist chk, dir, 5
	if chk = "" {
		dialog "[" + dir + "]は存在しません", 1
	} else {
		dialog "[" + dir + "]を削除してよろしいですか?", 2
		if stat = 6 {
			deldir dir
			if stat : dialog "削除しました" : else : dialog "削除できませんでした"
		}
	}
	stop

deldir 対象フォルダ
対象フォルダ削除対象のフォルダパスを指定する。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
#uselib "kernel32.dll"
#func  global deldir "RemoveDirectoryA" str

	sdim dir, 512
	pos  10, 10 : mes "削除フォルダ"
	pos 120, 10 : input dir, 200
	pos 320, 10 : button gosub "実行", *remove
	stop

*remove
	dirlist chk, dir, 5
	if chk = "" : dialog "[" + dir + "]は存在しません", 1 : return
	dialog "[" + dir + "]を削除してよろしいですか?", 2
	if stat = 6 {
		deldir dir
			if stat : dialog "削除しました" : else : dialog "削除できませんでした"
	}
	return