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


HSPTV!掲示板


未解決 解決 停止 削除要請

2007
0519
harvestフォルダ削除2解決


harvest

リンク

2007/5/19(Sat) 00:39:51|NO.8334

空のフォルダを削除したいのですが、削除できる場合とできない場合があります。
どうやら削除する前にそのフォルダにアクセスしていると失敗するみたいです。
これってどうやったら直るんでしょうか?ちなみに以下のスクリプトで再現できます。


////////////////////////////////////////////////////////// ;新規命令 ////////////////////////////////////////////////////////// ////////空ディレクトリ削除命令 ;p1=削除する空フォルダのフルパスが入っている文字列型変数 #module #uselib "kernel32.dll" #cfunc RemoveDirectory "RemoveDirectoryA" str #deffunc Func@_DeleteEmpDir str Func@_DeleteEmpDir_P1 ret=RemoveDirectory(Func@_DeleteEmpDir_P1) return #global //////// ////////////////////////////////////////////////////////// ;メインルーチン ////////////////////////////////////////////////////////// goto *mainA ;AかBいずれかを選択 ////////メインルーチンA(正常に削除できる) *mainA ;C:\にTestFolderを作成してから実行して下さい。 ;フォルダ削除 ParamStr1="C:\\TestFolder" Func@_DeleteEmpDir ParamStr1 end ////////メインルーチンB(削除できない) *mainB ;C:\にTestFolderフォルダを ;C:\TestFolderにtest.txtファイルを作成してから実行。 ;ファイル削除(これは問題なし) chdir "C:\\TestFolder" delete "test.txt" ;フォルダ削除(ここで失敗する) ParamStr1="C:\\TestFolder" Func@_DeleteEmpDir ParamStr1 end



この記事に返信する


pizza

リンク

2007/5/19(Sat) 01:58:12|NO.8336

RemoveDirectoryはそのプロセスのカレントディレクトリを
削除できないようです。
フォルダを削除する前にchdirで移動してみてください。



harvest

リンク

2007/5/19(Sat) 10:12:24|NO.8339

pizzaさん返信ありがとうございます。
chdirで適当な別フォルダを指定したところ、きちんと削除できました。
ありがとうございました。



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