Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# DirectoryInfo引发System.OverflowException异常_C#_.net - Fatal编程技术网

C# DirectoryInfo引发System.OverflowException异常

C# DirectoryInfo引发System.OverflowException异常,c#,.net,C#,.net,当我使用如下网络路径构建新的DirectoryInfo时: using Delimon.Win32.IO; DirectoryInfo di = new DirectoryInfo(@"\\a\path\to\a\place\you\are\not\allowed\to\know") 我知道路径是正确的,因为复制粘贴时它会在浏览器中打开。但我得到了一个错误: “System.OverflowException:算术运算导致溢出。” 这是我能提供的所有调用堆栈信息 System.Overflo

当我使用如下网络路径构建新的DirectoryInfo时:

using Delimon.Win32.IO;

DirectoryInfo di = new DirectoryInfo(@"\\a\path\to\a\place\you\are\not\allowed\to\know")
我知道路径是正确的,因为复制粘贴时它会在浏览器中打开。但我得到了一个错误:

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

这是我能提供的所有调用堆栈信息

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对象的构造引起的


有什么帮助吗?

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

我使用的是Delimon.Win32.IO.DirectoryInfo,这显然是一个旧的、未维护的代码库。我应该使用System.IO.DirectoryInfo,我刚才遇到了这个错误

System.OverflowException:'算术运算导致溢出。'

并设法找出了原因

以下行给出了错误:

string[] files = Delimon.Win32.IO.Directory.GetFiles(@"d:\temp");
这句话来自我正在重写的一个旧应用程序。知道它在旧版本中有效,但在新版本中无效,我删除了新版本中的所有内容,留下了一个空表单。我还是犯了错误

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

*.csproj
文件中,有一行:

<Prefer32Bit>false</Prefer32Bit>
false
它既不在旧应用程序中,也不在新项目中


似乎在创建新项目时,默认情况下会选中“首选32位”(
project->Properties->Build->General
),但在我的新应用程序中,未选中该选项。我不记得自己取消勾选了它,所以我不知道它是如何被取消勾选的。一旦我检查了它,我就不再得到错误了。

我刚才得到的就是这个错误

System.OverflowException:'算术运算导致溢出。'

并设法找出了原因

以下行给出了错误:

string[] files = Delimon.Win32.IO.Directory.GetFiles(@"d:\temp");
这句话来自我正在重写的一个旧应用程序。知道它在旧版本中有效,但在新版本中无效,我删除了新版本中的所有内容,留下了一个空表单。我还是犯了错误

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

*.csproj
文件中,有一行:

<Prefer32Bit>false</Prefer32Bit>
false
它既不在旧应用程序中,也不在新项目中


似乎在创建新项目时,默认情况下会选中“首选32位”(
project->Properties->Build->General
),但在我的新应用程序中,未选中该选项。我不记得自己取消勾选了它,所以我不知道它是如何被取消勾选的。一旦我检查了它,就不会再出现错误。

你确定你使用的是斜杠而不是反斜杠吗?反斜杠应该转义,以防万一。如果您不能发布,查看引用源代码和完整调用堆栈是解决问题的方法。现在,知道您使用的是
Delimon.Win32.IO.DirectoryInfo
,这不是我们都知道和喜欢的
System.IO.DirectoryInfo
,这一点非常重要。这似乎是(也没有NuGet软件包),所以其中的任何错误都可能无法修复。看,你不是唯一一个有类似问题的人,编辑:我总是忘记在评论中输入提交…无论如何,这听起来像是你用来访问长文件名的库的问题,你确定你需要它吗?你确定你使用的是斜杠而不是反斜杠吗?反斜杠应该转义,以防万一。如果您不能发布,查看引用源代码和完整调用堆栈是解决问题的方法。现在,知道您使用的是
Delimon.Win32.IO.DirectoryInfo
,这不是我们都知道和喜欢的
System.IO.DirectoryInfo
,这一点非常重要。这似乎是(也没有NuGet软件包),所以其中的任何错误都可能无法修复。看,你不是唯一一个有类似问题的人,编辑:我总是忘记在评论中输入提交…不管怎么说,这听起来像是你用来访问长文件名的库的问题,你确定需要它吗?