タイトル | : Re^5: UNLHAで使用したフォルダの削除 |
記事No | : 14361 |
投稿日 | : 2010/01/08(Fri) 09:58 |
投稿者 | : 花ちゃん |
> 以下のようにフォルダ削除前にName関数でフォルダ名の変更を試みましたが、 > Name関数の実行時にエラーでます。 > Unlha Me.hwnd, "a -d0 c:\test.lzh c:\dummy\*.* -w1", msg, 1024 > Kill "c:\dummy\*.*" > Name "c:\dummy\" as "c:\dummy1\" <--- ここでエラー発生 > RmDir "c:\dummy1\"
上記コードを試して見ましたが、エラーなく、フォルダーが削除されましたが。 (私の環境では、エラーが発生しません。)
エラーが発生したとなると、ファイルが削除されない内にフォルダー名の変更が 行われた可能性があります。(マシンの環境により) 又は、圧縮するファイルが多いとかサイズが大きいとかで圧縮が終っていない内に 次に進んだとか。 又、IDE 上と EXE 上とでも動作が違ってくるかも知れません。 (私は、IDE 上でしか試していませんが。)
圧縮・削除後、少し待ち時間を作って完全に作業が終了されてから次に進むように すれば多分エラーはでないかと。 試しに、F8 キー 等で1ステップづつコードを動かしてみたら確認ができるかと。
それよりも、フォルダー内のファイルごとフォルダーを削除したいなら Unlha Me.hWnd, "a -d0 c:\test.lzh c:\dummy\*.* -w1", msg, 1024 CreateObject("Scripting.FileSystemObject").DeleteFolder "c:\dummy" で削除できます。
上記は簡便的にFileSystemObjectを使っているので、ここの掲載の FileSystemObject の 項をご覧ください。
又は、下記のような方法でもファイルごとフォルダーを削除する事ができます。 http://www.hanatyan.sakura.ne.jp/vbhlp/fil_Delete.htm
|