FileオブジェクトのDeleteメソッド または
FileSystemObjectオブジェクトのDeleteFileメソッドのどちらでも
フォルダが削除できません。
Delete実施前に、プログラム上で対象のフォルダを操作(フォルダの作製やフォルダ内のファイルオープン)しているとerror 70になります。
対象フォルダ内にファイルがある場合は、全てのファイルが削除された後
error 70になります。
Delete実施前にフォルダを操作を行なっていない場合は削除できます。
Delete実施前に、前のフォルダ操作のobjectは全てnothingにしています。
対処方法ご存知の方 どうかよろしくお願いします。 moko
# 質問時には、環境等を明記しましょう。
> Delete実施前にフォルダを操作を行なっていない場合は削除できます。
そのフォルダが、作業フォルダになっているのかも知れません。
> 対処方法
どこが『カレントディレクトリ』になっているかをチェックしてみてください。
WSH の場合は、
S = CreateObject("WScript.Shell").CurrentDirectory
でチェックできます。VB6 の場合は、もっと単純に
S = CurDir()
でも OK です。
その結果、もしもカレントディレクトリになっているようであれば、
'VB6の場合
ChDrive Left(App.Path, 1)
ChDir App.Path
などとして、一時的にカレントディレクトリを移動してみてください。
> FileオブジェクトのDeleteメソッド または
> FileSystemObjectオブジェクトのDeleteFileメソッドのどちらでも
> フォルダが削除できません。
そりゃそうでしょう。
「フォルダ」を削除するために、
「ファイル」を削除するメソッドを呼び出しても…。
>魔界の仮面弁士さん
丁寧にありがとうございます!
環境はVB6です(すみません回答これでよかったでしょうか?本気初心者なもので)
カレントディレクトリの移動さっそく試してみます。
>Dentalさん
すみません文字間違えていました
実際はDeleteFolderメソッドとFolderオブジェクトを使用しています。
ご指摘ありがとうございました。
引き続きがんばります。
>魔界の仮面弁士 さん
『カレントディレクトリ』を試してみましたが
カレントディレクトリにはなっていませんでした。
根本原因は不明のままなのですが
削除対象フォルダ内のファイルPath取得方法を変更したところ、
<「FileListBox」の使用を止めて、
フォルダオブジェクトを作製してファイル情報取得>
なぜか同タイミングでも削除を実行することが出来るようになりました。
プログラムの詳細記載せずに質問してしまい
大変失礼しました & ありがとうございました。
ツイート | ![]() |