C# 文件解析为太长的路径。最大长度为260个字符

C# 文件解析为太长的路径。最大长度为260个字符,c#,.net,sql-server,windows,C#,.net,Sql Server,Windows,我正在运行Windows 7的Fujitsu平板电脑上运行C#NET WPF应用程序,访问安装在用户AppData文件夹中的SQL Server CE 3.5数据库。 此应用程序可在相同类型的其他平板电脑上正常工作,也可在普通笔记本电脑或台式PC上正常工作 当应用程序在一个特定的平板电脑上运行时,我会得到以下错误: The file resolves to a path that is too long. The maximum length is 260 characters [File n

我正在运行Windows 7的Fujitsu平板电脑上运行C#NET WPF应用程序,访问安装在用户AppData文件夹中的SQL Server CE 3.5数据库。 此应用程序可在相同类型的其他平板电脑上正常工作,也可在普通笔记本电脑或台式PC上正常工作

当应用程序在一个特定的平板电脑上运行时,我会得到以下错误:

The file resolves to a path that is too long. The maximum length is 260 characters 
[File name = c:\Users\tester\AppData\Roaming\Fourmative\AppDatabase\MyDatabase#1.sdf]
现在,我已经了解了windows路径名的限制,最大长度为260个字符。但是,正如您所看到的,此路径的长度只有72个字符

此外,由于应用程序作为安装程序的一部分安装在用户的AppData文件夹中,因此我无法在任何一台用户计算机上真正控制此路径将精确指向的位置


我假设这一定意味着实际路径实际上是从显示的路径映射而来的?因此,我的问题是,如何从命令行中找到完整的实际路径(必须是260个字符),以便确定如何真正解决此问题

Windows路径是无限的,但需要使用不同的语法

发件人:

Windows API有许多函数,这些函数也有Unicode版本 允许扩展长度路径的最大总路径长度为 32767个字符。这种类型的路径由组件组成 由反斜杠分隔,每个反斜杠的最大值为 GetVolumeInformation的lpMaximumComponentLength参数 函数(此值通常为255个字符)。指定 扩展长度路径,使用“\?\”前缀。例如,“\?\D:\very 长途跋涉”


我不确定“MyDatabase#1.sdf”是否是有效的文件名。我怀疑#是否为有效字符,它可能是问题的原因,不知何故…

谢谢您的回复。我将尝试更改代码,看看这是否有帮助。然而,我真正的问题是消息表明路径超过260个字符。但是,路径实际上只有72个字符长。您知道为什么会出现这种情况吗?#在Windows上绝对是一个有效的文件名字符。我不认为您可以使用Process Monitor跟踪哪个系统调用实际失败?路径中的任何目录是否实际上是一个引用目录的连接点,最终导致指定系统的路径过长文件?你解决过这个问题吗?我在短路径上也有同样的错误