2017/04/15(Sat) 14:00:11 編集(投稿者)
2017/04/15(Sat) 13:59:34 編集(投稿者)
<pre><pre>
昔ながらの
Dim buf As String
buf = Dir(dirInfo.FullName & "\*.*")
Do While buf <> ""
filepath(cnt) = dirInfo.FullName & "\" & buf
cnt = cnt + 1
buf = Dir()
Loop
という方法も試してみましたが
外付けHDDの場合には、
buf = Dir(dirInfo.FullName & "\*.*")のところで数十秒フリーズしてしまうことが分かりました。
あと、内蔵HDDであっても、
上記のDir関数の方法と
Dim files As IEnumerable(Of String) = Directory.EnumerateFiles(dirInfo.FullName, "*", SearchOption.AllDirectories)
の方法だとわずかですがフリーズしてしまいます。
Dim filepath As New List(Of String)
Dim dirInfo As New DirectoryInfo(dirInfo0.FullName)
Dim flEnum1 = dirInfo.EnumerateFiles
Dim flEnum2 = flEnum1.GetEnumerator
Dim cnt = 0
Do While flEnum2.MoveNext
cnt += 1
Dim fi = flEnum2.Current
filepath.Add(fi.FullName)
Loop
の方法だとフリーズしないことが分かりました。
外付けHDDだと何が違うのでしょうか?
ちなみに7200rpmで1TBの2.5inch HDDです。
</pre></pre>