如何在没有异常的情况下更快地执行文件操作
本文关键字:执行 操作 文件 情况下 异常 | 更新日期: 2023-09-27 18:15:14
我开发了一个应用程序来为我的项目执行一些后端文件操作。
应用程序将编写一个二进制文件,并在其中执行一些操作,从而创建另一个文件。然后我将读取输出文件以更新我的数据库。
例如,考虑我将编写一个ABC.bin
文件,输出文件是XYZ.bin
上述所有操作将在10毫秒内完成。我会继续同样的过程很多次,例如100次。
现在,问题是我在从源代码运行应用程序时遇到了一些异常,比如找不到文件,访问被拒绝。
但在将应用程序制作为可执行文件(.exe(后,我不会得到同样的异常
这两种情况都发生了什么?为什么在将其作为可执行文件后,同样的事情没有发生?
你能做的几件事:
-
如果您只在调试器下看到异常,而不是在运行独立可执行文件时看到异常,请检查Visual Studio中的异常设置。转到
Debug -> Exceptions ...
并确保Thrown
中的所有内容都未选中 -
调查在开始复制之前使用file.exists方法查询文件是否存在是否会更快(这当然只是
FileNotFoundException
的解决方案( -
将复制循环包装在try-catch块中,而不是包装循环中的代码。像这样:
List<string> fileNames = new List<string>() { "file1.txt", "file2.txt", ... }; int i = 0; try { for (i = 0; i < fileNames.Count; i++) // do copying here } catch (Exception ex) { // log exception } // You can decide if to return to copying rest of the files here, from i+1
这一切都是为了避免为每个文件进入和退出try
块,因为它有成本。