我正在开发一个应用程序,该应用程序遍历某些目录中的每个文件,并对这些文件执行一些操作。除其他外,我必须检索文件大小和修改此文件的日期。某些文件全名(目录+文件名)太长,我无法使用.NET Framework FileInfo,它被限制为MAX_PATH(260个字符)。许多Web来源建议通过P / Invoke使用本机Win32函数来访问名称过长的文件。当前,Win32函数似乎会出现完全相同的问题。例如对于GetFileAttributesEx(270字节)的路径(kernel32.dll)失败,并出现Win32错误3 ERROR_PATH_NOT_FOUND。可以从Notepad2成功打开相同的文件,并使用Windows资源管理器成功显示该文件(例如,由于259个字符的限制¹,Visual Studio 2010无法打开它)。文件路径为270个字符长时,我该怎么办才能访问文件?笔记:删除或忽略文件路径长度超过259个字符的文件不是解决方案。我仅在寻找与Unicode兼容的解决方案。该应用程序将在Windows 2008 / Vista或更高版本(安装了.NET Framework 4)下运行。¹令人惊讶的是,Microsoft Word 2007失败,抱怨没有软盘驱动器的计算机上的“软盘太小”,或者当剩余4 GB的RAM时抱怨“ RAM内存不足”,或者最后是“需要更新防病毒软件”。他们是否会停止一天至少在诸如Microsoft Office之类的关键产品中显示如此愚蠢的毫无意义的错误?
3 回答
- 3 回答
- 0 关注
- 3063 浏览
添加回答
举报
0/150
提交
取消