加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

发布时间:2020-12-15 09:15:35 所属栏目:大数据 来源:网络整理
导读:我有一个从Internet下载一些文件的程序.文件名可能很长(100个字符). 用户可以选择将这些文件保存在名称很长的文件夹中(200个字符). 因此,路径的总长度超过 260 chars. 我试图创建一个函数来检查路径是否太长并截断文件名,因此整个路径将正好是260个字符.但是
我有一个从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.它的工作原理与以往一样.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读