为什么在文件名有空格的情况下,获取短路径会失败呢? 100

OptionExplicitConstMAX_PATH=260PrivateDeclareFunctionGetShortPathNameLib"kernel32"Ali... Option Explicit
Const MAX_PATH = 260
Private Declare Function GetShortPathName Lib "kernel32" Alias "GetShortPathNameA" (ByVal lpszLongPath As String, ByVal lpszShortPath As String, ByVal cchBuffer As Long) As Long

Dim FilePath As String
Dim ShortFilePath As String
FilePath = "C:\Users\Administrator\Desktop\sample a.txt"
'如果上面文件名中没有空格就能成功

ShortFilePath = String(MAX_PATH, vbNullChar)
GetShortPathName FilePath, ShortFilePath, MAX_PATH

'为什么这里获取的短路径是空的?

End If
展开
 我来答
归萱pN
2012-11-07 · TA获得超过989个赞
知道大有可为答主
回答量:1068
采纳率:0%
帮助的人:1478万
展开全部
'我的xp+VB6(SP6)测试正常,应该不是系统问题
Option Explicit
Const MAX_PATH = 260
Private Declare Function GetShortPathName Lib "kernel32" Alias "GetShortPathNameA" (ByVal lpszLongPath As String, ByVal lpszShortPath As String, ByVal cchBuffer As Long) As Long
Private Sub Command1_Click()
Dim FilePath As String
Dim ShortFilePath As String
FilePath = "C:\Users\Administrator\Desktop\sample a.txt" '试着加个空格,我觉得你在这里加了一个空格但桌面上的文件名没有加空格
ShortFilePath = String(MAX_PATH, vbNullChar)
GetShortPathName FilePath, ShortFilePath, MAX_PATH
MsgBox IIf(Dir(FilePath) <> "", Split(ShortFilePath, Chr(0))(0) & vbNewLine & FilePath, "未找到文件:" & vbNewLine & FilePath) '看提示
End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lnleny
2012-11-07 · TA获得超过492个赞
知道小有建树答主
回答量:919
采纳率:0%
帮助的人:551万
展开全部
你的Windows是什么版本?VB是什么版本?
我的是XP加VB6,运行很正常,没问题。
你可以在CMD下用dir/x看看,我的在命令行下也正常。
追问
win7 x64
vb 6.0 sp6
追答
那个,VB6和WIN7不是很兼容啊,也许你可以试试更高版本的VB,至于你说的这个问题,应该是WIN7提供的API不太适合VB6用吧,
Const MAX_PATH = 260

试试把这一句写完整,也许有用?
Const MAX_PATH as long = 260
晕,才发现你的WIN7还是64位的,你可以试试VB6生成的EXE运行在兼容模式下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
风雪剑无痕
2012-11-07 · TA获得超过1253个赞
知道大有可为答主
回答量:1691
采纳率:100%
帮助的人:1656万
展开全部
用字符串连接符试试
追问
不能连接的,我问价你的路径是动态获取的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
icdbow
2012-11-10 · TA获得超过108个赞
知道小有建树答主
回答量:153
采纳率:0%
帮助的人:81.6万
展开全部
FilePath = @"C:\Users\Administrator\Desktop\sample a.txt"
//试试
来自:求助得到的回答
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式