标题:用API函数获取的文件夹名及路径,并放在变量mpath中,为什么mpath不能运算?
只看楼主
muyubo
Rank: 9Rank: 9Rank: 9
来 自:山东莱芜
等 级:蜘蛛侠
威 望:3
帖 子:471
专家分:1017
注 册:2011-3-6
结帖率:95.65%
已结贴  问题点数:20 回复次数:12 
用API函数获取的文件夹名及路径,并放在变量mpath中,为什么mpath不能运算?
用API函数获取的文件夹名及路径,如"d:\新建文件夹"并放在变量mpath中,为什么mpath不能运算?
如:?mpath
提示找不到变量mpath
但copy file c:\*.dbf to &mpath
可以完成拷贝文件到d:\新建文件夹 内
 messagebox(allt(mpath)) 可以显示:d:\新建文件夹

如果写:
mpath=mpath+"\备份文件"
md &mpath
d:\新建文件夹下,没有建立 备份文件夹
copy file c:\*.dbf to &mpath
还是将文件拷贝到了d:\新建文件夹 内

请问怎样运算API函数获得的内存变量??
  
搜索更多相关主题的帖子: 新建文件夹 
2011-06-12 10:52
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:396
帖 子:11713
专家分:43267
注 册:2006-5-13
得分:15 
通过调试器或者用wait语句逐步检查mpath的类型和值,然后排查问题。

活到老,学到老! http://www. E-mail:hu-jj@
2011-06-12 16:51
muyubo
Rank: 9Rank: 9Rank: 9
来 自:山东莱芜
等 级:蜘蛛侠
威 望:3
帖 子:471
专家分:1017
注 册:2011-3-6
得分:0 
以下是引用hu9jj在2011-6-12 16:51:13的发言:

通过调试器或者用wait语句逐步检查mpath的类型和值,然后排查问题。
我用调试器排查了,
mpath=space(512) &&变量mpath预留512个空字符。
     =SHGetPathFromIDList(pidl,@mpath) &&如果成功,用户选择的路径名,将自动填入mpath变量中。
   CLEAR DLLS
     mpath=LEFT(mpath,50)
     mpath=ALLTRIM(mpath)+"\备份文件"  &&运算是对的,我选的是"d:\新建文件夹",运算结果是"d:\新建文件夹\备份文件"
   *IF !directory(mpath)
     md &mpath         问题就在这     &&d:\新建文件夹 存在,而备份文件夹不存在,系统提示d:\新建文件夹 已经存在
   *endif                                  而不建立d:\新建文件夹\备份文件 文件夹 为什么??
     copy file .\DATA\*.*  to  &mpath\*.*   &&将文件拷贝到所选文件夹下
     messagebox(allt(mpath))           &&显示用户选择的路径名。
2011-06-12 18:04
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:396
帖 子:11713
专家分:43267
注 册:2006-5-13
得分:0 
先进入mpath文件夹,再建立“备份文件”文件夹。
如:
cd &mpath
md "备份文件"

活到老,学到老! http://www. E-mail:hu-jj@
2011-06-12 19:00
qingfameng
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:35
帖 子:964
专家分:3019
注 册:2010-2-6
得分:5 
个人觉得:手工删除那个"备份文件" 文件夹,(它也可能是隐含的,U 盘病毒容易造成这个现象),再运行程序试试。
2011-06-12 20:43
muyubo
Rank: 9Rank: 9Rank: 9
来 自:山东莱芜
等 级:蜘蛛侠
威 望:3
帖 子:471
专家分:1017
注 册:2011-3-6
得分:0 
回复 4楼 hu9jj
进入目录后,可以建立新目录了.
谢谢帮助,
不过,带路径的新目录应该也能建立吧.
2011-06-13 06:58
muyubo
Rank: 9Rank: 9Rank: 9
来 自:山东莱芜
等 级:蜘蛛侠
威 望:3
帖 子:471
专家分:1017
注 册:2011-3-6
得分:0 
回复 5楼 qingfameng
没有隐含文件,而且提示是新建文件夹已存在,而不是提示新建文件夹下的备份文件夹已存在.
2011-06-13 07:00
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:396
帖 子:11713
专家分:43267
注 册:2006-5-13
得分:0 
VFP无法建立带路径的子目录!

活到老,学到老! http://www. E-mail:hu-jj@
2011-06-13 07:13
muyubo
Rank: 9Rank: 9Rank: 9
来 自:山东莱芜
等 级:蜘蛛侠
威 望:3
帖 子:471
专家分:1017
注 册:2011-3-6
得分:0 
回复 8楼 hu9jj
噢,那就明白了,谢谢!!
2011-06-13 08:56
qingfameng
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:35
帖 子:964
专家分:3019
注 册:2010-2-6
得分:0 
不过,在本地机子的任何盘符内,应该允许建立带有路径的多层目录吧?(XP系统,VFP6.0)。再就是:与其它机子建立了映射盘符后,也允许用本机,直接在其它机子上建立带有路径的多层子目录的。比如:下句是正常运行的。
 mpath="D:\tt1\tt2\tt3\tt4" && 也可以把 D 换成映射盘符
 if.not.dire("&mpath")
    md &mpath
 else
    =messagebox(mpath+" 已经存在")
 endif
 
2011-06-13 09:41



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-342564-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.091836 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved