求助:当前路径的问题

侠雨飞飞 2006-05-23 04:22:33
我在程序中需要调用一些批处理文件,其中有set path=...
问题就来了,跟随后面的fileopen()函数总是失败,无论写文件全路径还是写文件名
从前在PB7下面开发时,我用listbox对当前目录下执行dirlist()函数可以解决这个问题
但现在PB9下,却不管用了
也试着在run一个批处理文件,在里面set path=当前路径
还是不行

HELP~
...全文
512 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
霖湘凝 2006-05-29
  • 打赏
  • 举报
回复
晕,每次打开一个不在运行目录文件夹的文件,
前后都必须先获取运行目录,处理完后再恢复运行目录,如:
//获取运行目录
ls_runpath = GetCurrentDirectory()

//处理文件
openfile.......

//恢复目录
SetCurrentDirectoryA(ls_runpath)
billxia 2006-05-29
  • 打赏
  • 举报
回复
FileOpen(‘文件所在文件夹’+"rq.log",。。。
wangxichen 2006-05-25
  • 打赏
  • 举报
回复
使用GetCurrentDirectory函数可以获取当前目录

利用API函数GetModuleFileNameA可获得应用程序所在目录,
在PB开发环境中返回PB可执行程序所在的目录,
在编译后返回应用程序所在目录
圣殿骑士18 2006-05-23
  • 打赏
  • 举报
回复
晕,run()函数没有等待的呀,你调用run之后,
再执行sleep(10),等待10s钟,在执行下面的代码.
试试看.
侠雨飞飞 2006-05-23
  • 打赏
  • 举报
回复
to daixf_csdn(圣殿骑士)
还是不能用
:(
侠雨飞飞 2006-05-23
  • 打赏
  • 举报
回复
下面是按钮的具体代码
其中用来恢复的批处理文件setcurrent.bat和要打开的文件rq.log都在同一目录下,就是当前程序目录下,奇怪的是,run可用,但fileopen就失败
如果将前面执行的另外设置路径的步骤注释掉,下面所有代码都是可用的

run("setcurrent.bat")
this.text='清除中。。。'
integer li_fileno
li_fileno = FileOpen("rq.log",LineMode!, Write!,lockwrite!, Replace!)
messagebox('',string(li_fileno))
if li_fileno>0 then
filewrite(li_fileno,"restart ")
fileclose(li_fileno)

this.text='清除日志'
end if



※※※※※※※※
这些是前面用到的批处理文件的内容
set CATALINA_HOME=D:\Tomcat4.1
set path=D:\Tomcat4.1\bin
startup

其实就是调用TOMCAT的启动服务
圣殿骑士18 2006-05-23
  • 打赏
  • 举报
回复
这么妖的,试试看吧,不一定有用
在执行批处理前用GetCurrentDirectory ( )得到当前路径并保存到变量中,
执行完批处理后,在调用fileopen前,
调用ChangeDirectory ( directoryname )
恢复当前路径.

680

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder API 调用
社区管理员
  • API 调用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧