c# - 在 Windows Server 2008 R2 中的共享和映射驱动器中搜索和读取文件很慢
问题描述
用c#编写了一个简单的递归程序,它将在Fixed、Mapped驱动器中搜索“.txt”文件并读取其内容并进行一些处理。应用程序在我的 Windows 7 开发 PC 中运行良好,但是当我在 Windows Server 2008 R2 中运行相同的应用程序时,它会花费大量时间并且在搜索和读取几个文件后会闲置。
- 在本地磁盘 C: 中,搜索和读取工作正常
- 在 D:,这是一个本地磁盘,但共享,同时访问 16777216 个用户,搜索和读取在几个文件后空闲
在映射驱动器 E: 中,搜索和读取在几个文件后空闲
private void ReadDirectories(string targetDirectory) { try { var files = Directory.EnumerateFiles(targetDirectory); foreach (string file in files) { if (file.EndsWith(".txt")) { try { // Logic } catch (Exception ex) { //Exception handling } } } var directories = Directory.EnumerateDirectories(targetDirectory); foreach (string subDirectory in directories) { ReadDirectories(subDirectory); } } catch (UnauthorizedAccessException Uaex) { //Exception handling } catch(AccessViolationException Aex) { //Exception handling } catch(Exception ex) { //Exception handling } }
解决方案
推荐阅读
- express - ExpressJS - 处理多个页面/分页
- java - 目标运行时 WebSphere Application Server 传统版 V9.0 未定义
- python - 获得最大收益的算法
- filesystems - 在 ubifs 卷上应用增量补丁
- html - 具有三种状态的复选框
- python - 如何仅在 tkinter 中更改所选文本的属性
- firebase - Firebase Cloud Functions:`convert` 因 ChildProcessError 而失败
- reactjs - 如何将 react-helmet 与 netlify 预渲染一起使用?
- python - 如何使用 atom-python-run 包在 Atom 中运行 python 脚本?
- git - 旧的提交出现在新的拉取请求中?