我正在尝试获取LastWriteTime排序的文件夹中的文件。
访问本地路径(C:\ MyFolder)时,代码运行非常快,但是访问远程路径(\\ MyServer \ MyFolder)时,代码正在挂起
Dim myOrderedList As List(Of String) = (From item In IO.Directory.GetFiles(strFolderSource) _
Let file = New IO.FileInfo(item) _
Order By file.LastWriteTime _
Select item).ToList()
此代码是否有效?不允许此方法从远程文件夹获取文件吗? 我可以使用哪种替代代码来获得相同的结果而无需挂起?
编辑(2019-01-18 16:32):
对不起,我已经尝试过Rango提出的解决方案,但仍然存在问题。最后,我创建了一个小型的日志记录系统,以赶上导致问题的步骤,并意识到这全都是凭证问题。
就在我发布代码之前,我进行了NET USE来授予对远程计算机的访问权限,并且执行了网络使用,但是由于任何原因,由于登录失败,GetFiles()都会失败:用户名未知或密码错误。 因此,在调用GetFiles()之前,我可以确保凭证具有网络使用权限吗?
也许使用暂停或类似的方法?
完整代码:
Dim processInfo As New System.Diagnostics.ProcessStartInfo()
processInfo.FileName = "C:\WINDOWS\system32\net"
processInfo.Arguments = "net use \\MyServer\IPC$ ""password"" /USER:Username"
System.Diagnostics.Process.Start(processInfo)
Dim myOrderedList As List(Of String) = (From item In IO.Directory.GetFiles("\\MyServer\g$\MyFolder") _
Let file = New IO.FileInfo(item) _
Order By file.LastWriteTime _
Select item).ToList()
答案 0 :(得分:4)
您可以尝试使用DirectoryInfo.EnumerateFiles
来代替,它有两个优点:
Dim di = new DirectoryInfo(strFolderSource)
Dim files = From fi In di.EnumerateFiles() Order By fi.LastWriteTime Select fi.FullName
Dim myOrderedList As List(Of String) = files.ToList()
答案 1 :(得分:0)
最终解决,包括在网络使用之后和 GetFiles()之前的5秒钟的睡眠:
await chatRoomReference.setData({
‘secondUserUID': uid,
});
感谢您的时间,并希望这对遇到类似问题的任何人有所帮助。