在 VB.NET 中自定义了一个 Sub 过程,内容如下:Private Sub ListFile(ByVal Path As String)On Error Resume NextDim i, j As StringFor Each i In My.Computer.FileSystem.GetFiles(Path)Dim ext As String = My.Computer.FileSystem.GetFileInfo(i).Extensionext = Microsoft.VisualBasic.LCase(ext)If ext = ".tmp" Or ext = ".chk" Or ext = ".ftg" Or ext = ".fts" Or ext = ".gid" _Or ext = ".old" Or ext = ".prv" Or ext = ".prv" Or ext = ".err" Or ext = ".syd" _Or ext = ".diz" Or ext = ".dmp" ThenCheckedListBox2.Items.Add(i.ToString)End IfNextFor Each j In My.Computer.FileSystem.GetDirectories(Path)ListFile(j)NextMy.Application.DoEvents()End Sub当我调用 ListFile("C:\") 或者 ListFile("D:\") 时一切正常但是用于 E:\ F:\ G:\ 就会出错。我的 C、D 的文件系统是 Fat32 ,E、F、G 是 NTFS,难道跟这个有关吗?正确的写法应该是怎样?
參考答案:NTFS系统下,只有SYSTEM用户才能访问System Volume Information 目录,所以导致错误。