相关疑难解决方法(0)

如何处理名称超过259个字符的文件?

我正在开发一个应用程序,它遍历某些目录中的每个文件,并对这些文件执行一些操作.其中,我必须检索文件大小和修改此文件的日期.

有些文件全名(目录+文件名)太长,我无法使用.NET Framework FileInfo,限制为MAX_PATH(260个字符).许多Web资源建议通过P/Invoke使用本机Win32函数来访问名称太长的文件.

目前,Win32函数似乎出现了完全相同的问题.例如,对于GetFileAttributesEx270字节的路径,(kernel32.dll)失败,Win32错误3 ERROR_PATH_NOT_FOUND.

可以从Notepad2成功打开同一个文件并使用Windows资源管理器成功显示(但Visual Studio 2010例如由于259个字符限制¹而无法打开它).

当文件路径长度为270个字符时,如何才能访问文件?

笔记:

  • 删除或忽略文件路径长度超过259个字符的文件不是解决方案.

  • 我正在寻找仅与Unicode兼容的解决方案.

  • 该应用程序将在安装了.NET Framework 4的Windows 2008/Vista或更高版本下运行.


¹令人惊讶的是,Microsoft Word 2007失败了,在没有任何软盘驱动器的计算机上抱怨"软盘太小",或者在剩下4 GB RAM时"RAM内存很低",或者最后那个"防病毒软件[...]需要更新".他们有一天会停止显示至少在像Microsoft Office这样的关键产品中出现如此愚蠢无意义的错误吗?

c# windows file-io pinvoke interop

65
推荐指数
6
解决办法
6万
查看次数

如何从路径中提取每个文件夹名称?

我的道路是 \\server\folderName1\another name\something\another folder\

如果我不知道路径中有多少个文件夹而且我不知道文件夹名称,如何将每个文件夹名称提取为字符串?

非常感谢

c# string

60
推荐指数
8
解决办法
10万
查看次数

如何在.NET中获得绝对或规范化的文件路径?

如何尽可能少地努力(使用一些已经存在的设施)转换路径c:\aaa\bbb\..\ccc如何c:\aaa\ccc

.net filepath

40
推荐指数
3
解决办法
2万
查看次数

标签 统计

c# ×2

.net ×1

file-io ×1

filepath ×1

interop ×1

pinvoke ×1

string ×1

windows ×1