gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 15:30:22 28 4
gpt4 key购买 nike

我有一个从互联网下载一些文件的程序。文件名可能很长(100 个字符)。用户可以选择将这些文件保存在名称很长(200 个字符)的文件夹中。因此,路径的总长度超过 260 chars .

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

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

知道如何治疗这种情况吗?
注意:下载过程是自动的,因此我不会停下来要求用户为每个长度不超过 260 个字符的文件输入新的文件名。我想默默地处理这件事。

最佳答案

就我个人而言,我的观点是 TPath 在这里完全是错误的。断言 Windows 路径不能超过 260 个字符只是否认现实。更重要的是,拒绝您对路径执行文本处理的能力确实非常令人费解。在我看来,应该避免 TPath

这会带你回到过去的美好时光。您可以从 SysUtils 调用 ExtractFileDir。它的工作效果和以前一样好。

关于delphi - 如何处理很长的文件名(使用 TPath)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31427260/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com