DeleteFolderメソッドでフォルダを削除するには?


みちこ  2002-02-13 05:26:30  No: 75258

はじめまして。教えてください。
Dir関数でAフォルダ内のファイルBの存在を確認した後、
Kill関数でファイルBを削除します。
この状態でAフォルダをファイルシステムオブジェクトのDeleteFolderメソッドで削除しようとするとうまく削除できません。
どうやらDir関数がAフォルダを握ってしまっているようなのですが、どうしたら
削除できるようになるのでしょうか?何かよい方法があれば教えてください。


Say  2002-02-13 10:18:11  No: 75259

DirやKillせずに、いきなりDeleteFolderしたらどうですか?
DeleteFolderは、中身があろうがなかろうがお構いなしに
削除するし・・・。

さもなければ、Killのあと
RmDirでフォルダ削除するとか・・・。

お好きなほうをどうぞ。


ハウア  2002-02-15 20:36:43  No: 75260

Dir関数の変わりに
「FileSystemObject」の「fileExists」を使用してみてはどうでしょうか?

--------------------------------------
Private Sub Command1_Click()
Dim fs As Object
Set fs = CreateObject("Scripting.FileSystemObject")

'///ファイルが存在していれば実行
'/// Text1.TextはAフォルダのパス[例 "c:\a"]
'/// Text2.TextはBファイルのパス[例 "c:\a\b"]
If fs.fileExists(Text2.Text) = True Then
  Kill (Text2.Text)
  fs.deletefolder (Text1.Text)
End If
End Sub


ぽー  2002-03-17 09:58:21  No: 75261

はじめまして。
こんばんわ。
おそらく、削除対象のフォルダがカレントフォルダに
なっているため、削除が行えない可能性があります。
ですので、カレントフォルダを別の場所にしてから、
そのフォルダに対して削除処理を実施してみては
如何でしょうか?
解決しなかったらごめんなさい。


みちこ  2002-03-20 06:04:29  No: 75262

既存のAPなので、あまり変更をすることができないのです。

  というわけで、Dir関数を使いつつも、フォルダの削除を行いたいのですが。
ぽー さんの回答の、「カレントフォルダを別の場所に移動」というのは、
「再度Dir関数を、別のフォルダを指定して呼ぶ」という
ことでしょうか?


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加