はじめまして。教えてください。
Dir関数でAフォルダ内のファイルBの存在を確認した後、
Kill関数でファイルBを削除します。
この状態でAフォルダをファイルシステムオブジェクトのDeleteFolderメソッドで削除しようとするとうまく削除できません。
どうやらDir関数がAフォルダを握ってしまっているようなのですが、どうしたら
削除できるようになるのでしょうか?何かよい方法があれば教えてください。
DirやKillせずに、いきなりDeleteFolderしたらどうですか?
DeleteFolderは、中身があろうがなかろうがお構いなしに
削除するし・・・。
さもなければ、Killのあと
RmDirでフォルダ削除するとか・・・。
お好きなほうをどうぞ。
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
はじめまして。
こんばんわ。
おそらく、削除対象のフォルダがカレントフォルダに
なっているため、削除が行えない可能性があります。
ですので、カレントフォルダを別の場所にしてから、
そのフォルダに対して削除処理を実施してみては
如何でしょうか?
解決しなかったらごめんなさい。
既存のAPなので、あまり変更をすることができないのです。
というわけで、Dir関数を使いつつも、フォルダの削除を行いたいのですが。
ぽー さんの回答の、「カレントフォルダを別の場所に移動」というのは、
「再度Dir関数を、別のフォルダを指定して呼ぶ」という
ことでしょうか?
ツイート | ![]() |