起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 184|回复: 5

OpenDialog由于路径过长无法完整获取文件名的问题

[复制链接]
发表于 2009-11-11 10:27:38 | 显示全部楼层 |阅读模式
由于客户原来在自己机器内建立了一套文件夹管理的机制,导致一些文件存放的位置很深,获取文件完整路径非常长,超过了260个字节,当我在程序中使用OpenDialog获取文件的完整路径时
lLocalFile := OpenDialog1.FileName;  
无法获取完整的文件路径名称,超过260个字节的部分被系统截去了,这个问题怎么解决?

ps:目前客户不会考虑改变他原有的文件夹管理机制,只能通过程序解决
回复

使用道具 举报

发表于 2009-11-11 11:30:58 | 显示全部楼层
文件的路径超过260个字节,可以正常编辑保存吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-11-11 11:42:21 | 显示全部楼层
保存没试过,我估计是OpenDialog对话框的问题,不排除SaveDialog也有类型的问题,但是你直接使用API函数赋地址保存的应该没问题
回复 支持 反对

使用道具 举报

发表于 2009-11-11 11:49:38 | 显示全部楼层
文件名长度windows本身就是有限制长度的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-11-11 12:11:22 | 显示全部楼层
现在不是文件名过长,而是完整路径过长

Google一下,是因为windef.h中MAX_PATH常量的定义只有260, 所以ansi版本的API函数最大就支持260字节,需要Unicode 版本的API函数才能达到32767

有什么Unicode 版本的函数可以替换OpenDialog获取文件路径名称的功能?
回复 支持 反对

使用道具 举报

发表于 2009-11-11 15:12:10 | 显示全部楼层
你那么深的目录是怎么建立出来的呢?
windows最深也就支持这么,这个没有办法修改了。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-17 01:17 , Processed in 0.041744 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表