0
フォルダーをバックアップするプログラムを作成しようとしています。私は5つのフォルダを言うつもりです、そして、それが再びバックアップされるならば、私は5つのフォルダの中で最も古いものが削除され、新しいフォルダがそこに置かれたいと思います。フォルダー内で最も古いフォルダーを見つける方法vb.net
にはどうすれば役に立つことができSystem.IO.DirectoryInfoを使用して、ディレクトリ
フォルダーをバックアップするプログラムを作成しようとしています。私は5つのフォルダを言うつもりです、そして、それが再びバックアップされるならば、私は5つのフォルダの中で最も古いものが削除され、新しいフォルダがそこに置かれたいと思います。フォルダー内で最も古いフォルダーを見つける方法vb.net
にはどうすれば役に立つことができSystem.IO.DirectoryInfoを使用して、ディレクトリ
で最古のフォルダを見つけるだろう。
具体的にはCreationTime
プロパティとEnumerateDirectories
メソッドです。ここで
は、LINQを使用してEnumerateDirectories法に修正されたサンプルである:ここでは
' Create a DirectoryInfo of the Program Files directory.
Dim dirPrograms As New DirectoryInfo("c:\program files")
' LINQ query for oldest directory
Dim dir = (From dir In dirPrograms.EnumerateDirectories()).Min(function (o) o.CreationTime).FirstOrDefault()
If Not IsNothing(dir) Then
' perform rest of function
End If
は、フォルダ内の最古のディレクトリを取得するための非LINQバージョンです:
Dim di As New DirectoryInfo("C:\program files")
Dim dirs() as DirectoryInfo = di.GetDirectories()
Dim creationTime as DateTime = DateTime.Now
Dim oldestDir As DirectoryInfo
For Each dir As DirectoryInfo In dirs
If DateTime.Compare(dir.CreationTime(), creationTime) < 0 Then
oldestDir = dir
creationTime = dir.CreationTime()
End If
Next
@ash基本的に、私のフォルダお互いの時間内に作成されます。 'directory.lastmodifieddate.oldest delete' – Kuzon
@Kuzon私は非LINQバージョンを追加しました。私が知る限り、これはディレクトリ内の最も古いディレクトリを取得する最も良い方法です。 –
@Ashありがとう、私はVbにはまだまだ新しく、 'creationTime = f.CreationTime()'エラーを修正するにはどうすればいいですか? 'f'は宣言されていません。保護レベルのためにアクセス不能になる可能性があります...文字列として宣言しますか? – Kuzon