我正在尝试从网络驱动器中读取160个文本文件。我使用的是System.IO.StreamReader
。出于某种原因,当它到达第22个文件时,它会抛出错误:
IO异常未处理。 磁盘空间不足
我的本地磁盘和网络驱动器都有足够的空间(这些是小文件),我不太明白为什么StreamReader
会抛出此异常(StreamWriter
会产生更多义)。
以下是我的一些代码:
'This sub is called 160 times (each file)
Private Sub readFile(filePath as String)
'error gets thrown on this line
Dim reader As System.IO.StreamReader = New System.IO.StreamReader(filePath)
'Reading through this file...
'...
'...
reader.Close()
End Sub
感谢。
答案 0 :(得分:-1)
我决定尝试从我的本地目录中读取这些文件,而不是从网络驱动器上读取。
然而,当我去复制它们(通过Windows)时,我收到错误:“磁盘空间不足”。文件总共40mb,我有几百gb免费。按“再试一次”20次后,它会越来越慢地复制,直到完成。奇怪的是,它会将这些文件分批复制42个。
然后,我能够从本地目录中读取它们没有问题。似乎问题与网络驱动器有关。
我的程序化解决方案是尝试复制它们直到它们全部被复制(通常需要大约一分钟)。
'we start by copying all the files to a local drive. Since reading off the M: drive always throws lame exceptions...
For Each f As String In My.Computer.FileSystem.GetFiles(fileDirectory)
While (My.Computer.FileSystem.FileExists(toCopyTofileName)) = False
Try
My.Computer.FileSystem.CopyFile(f, toCopyTofileName)
Catch ex As Exception
Threading.Thread.Sleep(1000)
End Try
End While
Next
目前,Threading.Thread.Sleep(1000)
很好(我每秒只重试一次),但我想我会将其切换为Timer
或其他东西。我还应该添加一个最大超时限制。