我有一个从Internet下载一些文件的程序.文件名可能很长(100个字符). 用户可以选择将这些文件保存在名称很长的文件夹中(200个字符). 因此,路径的总长度超过 260 chars. 我试图创建一个函数
用户可以选择将这些文件保存在名称很长的文件夹中(200个字符).
因此,路径的总长度超过 260 chars.
我试图创建一个函数来检查路径是否太长并截断文件名,因此整个路径将正好是260个字符.但是如果路径超过260个字符,则TPath类中的函数将无法工作.更确切地说,当路径超过260个字符时,GetDirectoryName会引发特定错误,因此我无法使用它从文件名中拆分文件夹.
Delphi的一个主要设计缺陷?
我认为TPath在处理长文件名时引发错误是一个很大的缺陷.简单地使用GetDirectoryName来READ(不写)只会让你的程序崩溃. TPath应该允许处理长路径.可能只有在尝试使用长路径写入文件时才会引发错误.但即便如此. NTFS接受长路径.那么,为什么德尔福应该强迫你坚持到260?有些程序可以处理长路径.例如,我使用Total Commander(从不使用Explorer),所以我不受长文件名问题的影响.
关于如何处理这个案子的任何想法?
注意:下载过程是自动进行的,因此我不会停止要求用户为每个未满260个字符的文件输入新文件名.我想默默地处理这件事.
这将带您回到过去的美好时光.您可以从SysUtils调用ExtractFileDir.它的工作原理与以往一样.