アプリ版:「スタンプのみでお礼する」機能のリリースについて

VBSで質問です。環境はXP Proです。

GetFolderメソッドでFolderオブジェクトを取得し、Filesプロパティを
For Eachでチェックしている時に、フォルダ内ファイルが削除された場合は、例外処理が起こるのでしょうか?
それとも、削除処理自体が排他制御されてしまうのでしょうか?
-----------------------------
' 環境設定
Const strRootPath = "D:\" '監視対象フォルダ

Dim objFso,objFolder,objFile,count

Set objFso = CreateObject("Scripting.FileSystemObject")

Set objFolder = objFso.GetFolder(strRootPath)

count = 0

' メインスクリプトの実行開始
For Each objFile In objFolder.Files
    ' このタイミングでファイルが削除されてしまったら?
If objFso.GetExtensionName(objFile) = "txt" Then
count = count + 1
End If
Next

皆様のお知恵をお貸しください。

A 回答 (1件)

排他制御は行われないようですよ


GetExtentionNameメソッドが失敗するようです

FileオブジェクトのOpenAsTextStreamや FSOのOpenTextFileでTextStreamを取得した場合は Streamを閉じるまでは削除が延期されるようです
    • good
    • 1
この回答へのお礼

redfox63 様、早速の回答助かりました。

実は、削除処理自体が排他制御される事を恐れていましたので、
ど真ん中の回答でした。

当方でも、For Eachでブレイクして削除を試してみた結果、
問題無く削除されました。

ありがとうございました。

お礼日時:2009/07/10 17:51

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!