分類:[VB.NET]
2007/07/13(Fri) 17:27:30 編集(投稿者)
開発環境:VS2005
言語 :VB.NET
指定したフォルダ内の変更や作成されたファイルを取得し、複製する処理を作成しています。
動作はするようになったのですが、起動時の動作が不可解なので質問させてください。
起動時にファイルリストを取得しているはずなのに
・起動時にファイルリストを取得
・対象フォルダのファイルを変更
・ボタンを押して新たにファイルリストを取得
以上の処理が終わった後、
変更前と変更後のファイルリストを比較しても内容が同じままです。
どうやら起動時にファイルリストがきちんと取れていないようなのですが、
コメント化してある値のチェックを行うことで意図した値が取得できます。
どうにも原因がつかめないので、どなたかアドバイスをお願いします。
' 以下ソース
Imports System.IO
Public Class Form1
' ファイルリスト格納用
Private FileList As New List(Of FileInfo)
Private Const strTargetFolder = "D:\Data\FolderWatch\1\"
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
' 既存のファイルリストを取得
FileList.AddRange(New DirectoryInfo(strTargetFolder).GetFiles)
' ------------------------------------------
' ここを有効にすることで正しく動作する
' 既存のファイルリストを出力
'For Each f As FileInfo In FileList
' Debug.WriteLine(f.Name & ":" & f.Length)
'Next
' ------------------------------------------
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
' 最新のファイルリストを取得
Dim NewFileList As New List(Of FileInfo)
NewFileList.AddRange(New DirectoryInfo(strTargetFolder).GetFiles)
' 前回のファイルリストを出力
For Each f As FileInfo In FileList
Debug.WriteLine(f.Name & ":" & f.Length)
Next
' 最新のファイルリストを出力
For Each f As FileInfo In NewFileList
Debug.WriteLine(f.Name & ":" & f.Length)
Next
' データ更新
FileList = NewFileList
End Sub
End Class