回 帖 发 新 帖 刷新版面

主题:如何获得文件的当前路径?

请问如何获得文件的当前路径?
DOS系统是98自带的(对了98自带的DOS是什么版的?)
已知条件是: 主程序文件名、数据文件名
我的主程序会调用数据文件的数据,但用户老是移动这两个文件的目录或改目录名(两文件还在一起)
我想测定主程序文件所在的路径从而准确的调用数据文件
也就是说,只要两个文件在同一路径下,放到哪里都可以使用。
请高手帮忙解决一下,小弟先谢了。

回复列表 (共10个回复)

沙发

1. 你把路径省略掉就可以了

2. 在7.1里可以用curdir$获得当前路径

板凳

省略可以解决调用数据文件的问题,但要保证两文件在同一目录下。
我想获得当前路径也是想从根本上解决这个问题。

3 楼

对了,你说的7.1是说的DOS吗?问题是我不能改用户的系统呀

4 楼

这里有个获得路径的程序
http://www.hoker.cn/hoker/bbs/dispbbs.asp?boardID=2&ID=1608

5 楼

7.1是QB7.1
不是DOS

抱歉,我搞不明白你的用意

"(两文件还在一起)
我想测定主程序文件所在的路径从而准确的调用数据文件
也就是说,只要两个文件在同一路径下,放到哪里都可以使用。"

"省略可以解决调用数据文件的问题,但要保证两文件在同一目录下。
我想获得当前路径也是想从根本上解决这个问题。"

又说在同一路径,又说不要保证同一目录,我都不知道怎么回事,
你的当前路径是哪个文件的当前路径?
当前路径就是当前路径,还用得找吗?就在眼前.
要找文件的绝对路径用dir或者用WIN的搜索好了.

6 楼

抱歉,可能没有说清楚。
简单的说就是:怎么知道当前你点击执行的Qbasic程序文件的绝对路径?
当然不是在点击前查看一下属性,我要的是程序本身可以获得自己的绝对路径。

7 楼

我想到一个思路:
1、就是程序先在当前路径下创建一个文件(随便什么文件)
2、然后再查找这个文件的绝对路径,(这个路径也就是程序本身所在的绝对路径)

请问怎样查找一个文件所在的路径比较方便?
总不至于让我用"DIR abc.abc /S/A"吧,就是这样还要切换几个盘符搜
哪样分析的程序不是比我程序本身还要大的多,再说也会影响程序本身执行的速度。
还请赐教

8 楼

QB45的链接好像过期了,
都看不到东西了,

关于这些函数45好像做了不少了,
你翻一翻旧贴应该能找到,

如果你用的是QB7.1的话,
就按我说的调用curdir$就可以了.


如果还要去找其他目录的其他文件的话,
还是去翻翻旧贴,
我也写过,但我写的东西都是用shell "dir"的
不好用,
还是向45学学怎样调用系统中断功能比较稳妥.

9 楼

print "当前盘符的当前路径="; CurrentPath$

FUNCTION CurrentPath$
  '本函数的功能:获得当前盘符的当前路径
  '本函数使用方法举例 : 如果要知道当前盘符的路径
  '程序:PRINT "当前盘符的目录为- ";CurrentPath$
  '获得当前路径的中断资料:入口AH=47 DL=0A,1B... 返回DS:SI地址=路径字符串
  DIM PathSize AS STRING * 64
  DIM Reg%(9)
  Reg%(0) = &H4700
  Reg%(3) = ASC(CurrentDrive$) - 64
  Reg%(8) = VARSEG(PathSize)
  Reg%(5) = VARPTR(PathSize)
  CALL INT86XOLD(&H21, Reg%(), Reg%())
  CurrentPath$ = LEFT$(PathSize, INSTR(PathSize, CHR$(0)) - 1)
END FUNCTION

10 楼

谢谢
我用的是DOS自带的QBbasic 1.1
刚刚接触4.5 没有用过7.1
系统中断我不会,上面的45的程序我看不太懂
我想我还是老老实实的跟45学学如何调用系统中断再说吧
我正在论坛里找有关的帖子,如果搞不懂再另行请教
再次感谢

我来回复

您尚未登录,请登录后再回复。点此登录或注册