首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DirectoryInfo抛出一个System.OverflowException

DirectoryInfo抛出一个System.OverflowException
EN

Stack Overflow用户
提问于 2017-06-19 21:01:46
回答 2查看 715关注 0票数 0

当我使用这样的网络路径构造一个新的DirectoryInfo时:

代码语言:javascript
复制
using Delimon.Win32.IO;

DirectoryInfo di = new DirectoryInfo(@"\\a\path\to\a\place\you\are\not\allowed\to\know")

我知道路径是正确的,因为当我复制粘贴时它会在我的浏览器中打开。但是我发现了一个错误:

"System.OverflowException:算术操作导致溢出。“

这是我能给出的所有呼叫堆栈信息。

代码语言:javascript
复制
System.OverflowException: Arithmetic operation resulted in an overflow.
at Delimon.Win32.IO.Helpers.GetFileInformation(String path)
at Delimon.Win32.IO.FileSystemInfo.Refresh()
at Delimon.Win32.IO.DirectoryInfo..ctor(String dir)

路径有67个字符长。所以这不是一条很长的路。

由于构造System.OverflowException对象,我找不到任何关于DirectoryInfo的文档。

有什么帮助吗?

EN

回答 2

Stack Overflow用户

发布于 2018-04-30 10:08:55

我刚才得到了这个准确的错误

System.OverflowException:“算术操作导致溢出。”

并设法隔离了病因。

下面一行给出了错误:

代码语言:javascript
复制
string[] files = Delimon.Win32.IO.Directory.GetFiles(@"d:\temp");

这句话来自我正在重写的一个旧应用程序。我知道它在旧版本中工作,但在新版本中不起作用,因此我删除了新版本中的所有内容,并留下了一个空表单。我还是有错误的。

然后,我创建了一个新的空项目,并在其中尝试了代码,它起了作用。因此,即使我删除了我的新应用程序中的所有内容,我仍然会发现错误。这表明设置有问题。所以我开始比较项目文件。

*.csproj文件中,有以下一行:

代码语言:javascript
复制
<Prefer32Bit>false</Prefer32Bit>

它既不在旧的应用程序中,也不在新的项目中。

在创建一个新项目时,默认情况下会选中“Project -> Properties -> Build -> General32位”,但在我的新应用程序中,没有检查这个选项。我不记得自己不检查它,所以我不知道它是如何被不检查的。一旦我检查了它,我就不会再得到错误了。

票数 2
EN

Stack Overflow用户

发布于 2017-06-19 21:25:10

我当时使用的是Delimon.Win32.IO.DirectoryInfo,它显然是一个旧的、未维护的代码库。我应该用System.IO.DirectoryInfo的

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44639910

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档