当前位置 : 主页 > 编程语言 > delphi >

delphi – 如何处理很长的文件名(使用TPath)?

来源:互联网 收集:自由互联 发布时间:2021-06-23
我有一个从Internet下载一些文件的程序.文件名可能很长(100个字符). 用户可以选择将这些文件保存在名称很长的文件夹中(200个字符). 因此,路径的总长度超过 260 chars. 我试图创建一个函数
我有一个从Internet下载一些文件的程序.文件名可能很长(100个字符).
用户可以选择将这些文件保存在名称很长的文件夹中(200个字符).
因此,路径的总长度超过 260 chars.

我试图创建一个函数来检查路径是否太长并截断文件名,因此整个路径将正好是260个字符.但是如果路径超过260个字符,则TPath类中的函数将无法工作.更确切地说,当路径超过260个字符时,GetDirectoryName会引发特定错误,因此我无法使用它从文件名中拆分文件夹.

Delphi的一个主要设计缺陷?
我认为TPath在处理长文件名时引发错误是一个很大的缺陷.简单地使用GetDirectoryName来READ(不写)只会让你的程序崩溃. TPath应该允许处理长路径.可能只有在尝试使用长路径写入文件时才会引发错误.但即便如此. NTFS接受长路径.那么,为什么德尔福应该强迫你坚持到260?有些程序可以处理长路径.例如,我使用Total Commander(从不使用Explorer),所以我不受长文件名问题的影响.

关于如何处理这个案子的任何想法?
注意:下载过程是自动进行的,因此我不会停止要求用户为每个未满260个字符的文件输入新文件名.我想默默地处理这件事.

就个人而言,我认为TPath在这里完全错了.断言Windows路径不能超过260个字符就是否定现实.更重要的是,否认你在路径上执行文本处理的能力实在是太难以理解了.在我看来,应该避免使用TPath.

这将带您回到过去的美好时光.您可以从SysUtils调用ExtractFileDir.它的工作原理与以往一样.

网友评论