• ベストアンサー

「Scripting.FileSystemObject」について

ただいまASPでWebシステムの開発をしております。 「Scripting.FileSystemObject」で質問をさせてください。 ASPの処理の中でファイルの削除をやりたかったので「Scripting.FileSystemObject」でファイル操作をしようと思いました。 記述は以下の通りです。 Dim objFileDelete Set objFileDelete = CreateObject("Scripting.FileSystemObject") objFileDelete.DeleteFile 消したいファイルのパス & ファイル名 ,True Set objFileDelete = Nothing 実行後にファイルを確認しましたが、消されていませんでした。 実行時にエラーにもなりませんでした。 調べてみると「Scripting.FileSystemObject」オブジェクトが作成されていないようなのです。 疑問に思ったことですが、そもそも「Scripting.FileSystemObject」はなにに入っている(表現がおかしいかもしれません)ものなのでしょうか? Windowsのシステムなのでしょうか? それともIISに依存するものでしょうか? 御存知の方がおりましたら教えてください。 お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Kuppycat
  • ベストアンサー率50% (109/216)
回答No.3

#1です。 XPですが、自分のところで試してみました。問題はなかったです。 パス指定はちゃんと通っていますか? 削除するファイルに対する権限の設定はちゃんとなされていますか? ご確認くださいな。 以下、自分が試したサンプル。 ---------- <%@ language="VBScript" %> <% Dim objFileDelete Set objFileDelete = Server.CreateObject("Scripting.FileSystemObject") if objFileDelete is nothing then %> <html> <body> <p>objFileDelete is Nothing!!</p> </body> </html> <% else objFileDelete.DeleteFile Server.MapPath("./deltest.txt"),True %> <html> <body> <p>File Deleted</p> </body> </html> <% end if Set objFileDelete = Nothing %> ----------

Cosmo2007
質問者

補足

サンプルソースをありがとうございました。 実行されない原因はパスが長すぎたことでした。 パスを短くしたところ、綺麗に削除されました。 どうもありがとうございました。

その他の回答 (2)

  • PED02744
  • ベストアンサー率40% (157/390)
回答No.2

>実行時にエラーにもなりませんでした。 >調べてみると「Scripting.FileSystemObject」オブジェクトが作成されていないようなのです。 実行時にエラーにならないのであれば、オブジェクトは作られているということではないでしょうか。 作られなかったらそこでエラーになるはず(cannot create object)です。 単にこのロジックを通っていないだけのような気がします。 サーバサイドとクライアントサイドで混乱があるのではないでしょうか。

Cosmo2007
質問者

お礼

ご返答ありがとうございます。 >実行時にエラーにならないのであれば、オブジェクトは作られているということではないでしょうか。 >作られなかったらそこでエラーになるはず(cannot create object)です。 >単にこのロジックを通っていないだけのような気がします。 試しにオブジェクト作成後に以下のようなIf分を設けてみました。 chkFileを表示させるとABCDEと表示されますので、ロジックは通っているのだと思います。 Dim objFileDelete Set objFileDelete = CreateObject("Scripting.FileSystemObject") If (objFileDelete = Nothing) Then chkFile = "ABCDE" End IF

  • Kuppycat
  • ベストアンサー率50% (109/216)
回答No.1

ASPの場合、オブジェクトを生成は、「Server.CreateObject」では? 「Scripting.FileSystemObject」はWindowsのランタイムライブラリです。 VBA、VBSなどでも使えますよ。 http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/script56/html/FSOoriFileSystemObject.asp

参考URL:
http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/script56/html/FSOoriFileSystemObject.asp
Cosmo2007
質問者

お礼

ご返答ありがとうございます。 オブジェクトを生成を「Server.CreateObject」としましたが、それでも上手く機能しません(エラー表示にもなりません)。 「Scripting.FileSystemObject」がWindowsのランタイムライブラリということは、特になにもインストールせずに使えるということでしょうか? ASPを実行させているサーバーはWindwos2000です。 SymantecのAntiVirusなどをインストールしているので、もしかしたら何かにひっかかっているかもしれません。

関連するQ&A