我有一个包含数十万个.wav文件的网络路径。当我执行以下操作时:
FileBuffer = Dir$("\\MEDIASERVER\*.wav", FileAttribute.Archive)
该线永远冻结。我确实让它运行了一天,它永远不会随着执行而返回。然后我决定在DOS下使用dir命令测试症状。相同的症状。
然后我想知道如果我在搜索模式中添加了一个前缀来缩小我的结果,我是否会得到相同的症状。我是在DOS中做到的:
DIR 0009*.wav
像魅力一样工作。因此,凭借这些知识,我回到了我的VB.NET项目并应用了类似的解决方案:
FileBuffer = Dir$("\\MEDIASERVER\0009*.wav", FileAttribute.Archive)
不会卡住,实际上是搜索。但我对第一个结果感到惊讶:
FileBuffer返回时带有以下值:
003925034541228334146804222014065036AM005020MIF.wav
这与我要求的模式不符。有人能告诉我我做错了什么吗? DIR $是否存在已知错误?有没有办法实现我想要的,而无需枚举网络共享中的100%文件?
附加信息如果相关: 开发机器:Windows 7 Pro,VS 2013 Pro 网络服务器:Linux Centos 5.0(运行Windows 7 Pro的网络驱动器也存在同样的问题)。
提前致谢。
答案 0 :(得分:-1)
很抱歉只是发布问题,已经得到了答案。关于它是否在DOS中正常工作的问题有助于缩小我的故障排除范围。我在网上看到几页,说DIR会带来意想不到的结果。他们声明它是因为8.3命名约定。然后我决定看看是否还有其他限制我可以添加到我的程序中。我将模式更改为:
DIR \\MEDIASERVER\0009*MIF.wav
现在我得到了预期的结果。但这不能因为8.3命名约定。这是其他的东西,但至少我有这个工作。
感谢您的时间。