[リストへもどる]
一括表示

投稿時間:2003/10/16(Thu) 20:30
投稿者名:わん。
URL :
タイトル:
DeleteFolderでエラー
はじめまして。わんといいます。
FileSystemObjectのDeleteFolderメソッドを使っているのですが、
エラーが出てファイルもフォルダも削除できません。

フォームアンロードの際に(以下、変数定義省略)
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set f = fs.GetFolder(App.Path & FLDR_NAME)
    f.DeleteFolder
ってしてるのですが、DeleteFolderメソッドでシステムエラーになり
(システムエラーを表示させているので表示されています)、削除されません。

参照設定のチェック済み、削除するフォルダは必ず存在する、
ほかのところで使っているFileSystemObjectオブジェクトのメソッドは
問題なく動いているしで、原因が全くわかりません。
ヘルプ読んだり花ちゃんちで読みこんだり掲示板ログ検索したりしたのですが、
見つけられませんでした。(いつもお世話になっております。)
なにか設定とかしないといけないことが他にもあるのでしょうか?
まだまだVBは初心者です。(C、C++はかじっています)
どうかご教授ください。よろしくお願いします。

※環境はOSがWindows2000でVisualBasic6.0(SP5)です。

投稿時間:2003/10/16(Thu) 21:01
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re: DeleteFolderでエラー
この App.Path & FLDR_NAME 指定が間違っていなければ(\ が抜けていたり)

    Set fs = CreateObject("Scripting.FileSystemObject")
    fs.DeleteFolder (App.Path & FLDR_NAME)

これで削除できます。
詳しくは、ここのFileSystemObject オブジェクト関係 の
FileSystemObject オブジェクトのメソッドの簡単な紹介 の 
Case 5 のところに記載しています。

投稿時間:2003/10/17(Fri) 00:10
投稿者名:魔界の仮面弁士
Eメール:
URL :
タイトル:
Re: DeleteFolderでエラー
>     Set f = fs.GetFolder(App.Path & FLDR_NAME)
>     f.DeleteFolder

どうやら、『fs.DeleteFolder』と『f.Delete』を混同されているようですね。

参照設定で、[Microsoft Scripting Runtime] (SCRRUN.DLL)をチェックしてみてください。
その上で、変数宣言を
  Dim fs As FileSystemObject
  Dim f As Folder
のようにすれば、VBの自動メンバ表示機能(IntelliSense機能)が使えるので、
コーディングが楽になるかと思います。

投稿時間:2003/10/17(Fri) 09:46
投稿者名:わん。
URL :
タイトル:
Re^2: DeleteFolderでエラー
花ちゃんさん、魔界の仮面弁士さん、レスありがとうございます。
        Set fs = CreateObject("Scripting.FileSystemObject")
        fs.DeleteFolder (App.Path & FLDR_NAME)
でうまくできました。
        Set fs = CreateObject("Scripting.FileSystemObject")
        Set f = fs.GetFolder(App.Path & FLDR_NAME)
        f.Delete
でもうまくできました。

> どうやら、『fs.DeleteFolder』と『f.Delete』を混同されているようですね。

はい。全くその通りです(^^ゞ
ほんとうにありがとうございました。