我想打开一个文本文件读内容,可是打开时必须给绝对路径(c:\vb6\1.ini),现在不知道绝对路径,只知道相对路径(比如当前的VB应用程序目录),可以打开文件吗?

解决方案 »

  1.   

    当然可以
    open app.Path & "\aa.txt" for input as #1
        
    close #1
      

  2.   

    请教上面,我想明白一个问题:open "c:\1.txt" for input as #1 就是通过绝对路径打开,您的办法是通过相对路径打开?app.path 就是求绝对路径的方法吗?自己怎么算绝对路径?
      

  3.   

    app.path是相对路径,app.path+"\aa.txt"指的是当前目录下的相对路径。
      

  4.   

    楼上错了,“aa.txt”才是相对路径,而app.path+"\aa.txt"是绝对路径!
    想让一个相对路径转化为绝对路径可以这么做:
    1,这个文件在系统目录下,或是在系统变量中(PATH,可以用函数查到),可以不用绝对路径
    2,这个文件在VB目录下,必须加上路径前缀,既app.path,这个app.path指的就是你的程序运行目录
    3,这个文件不属于上面任何一种情况,只有用API
    想让一个绝对路径转化为相对路径可以这么做:
    提取字符串最后一个"\",剩下的就是绝对路径了
      

  5.   

    楼上错了,“aa.txt”才是相对路径,而app.path+"\aa.txt"是绝对路径!
    想让一个相对路径转化为绝对路径可以这么做:
    1,这个文件在系统目录下,或是在系统变量中(PATH,可以用函数查到),可以不用绝对路径
    2,这个文件在VB目录下,必须加上路径前缀,既app.path,这个app.path指的就是你的程序运行目录
    3,这个文件不属于上面任何一种情况,只有用API
    想让一个绝对路径转化为相对路径可以这么做:
    提取字符串最后一个"\",剩下的就是绝对路径了
      

  6.   

    重要的要把要打开的文本放在你的目录下。
    open app.path+"\"+"1.txt" for input as #1 
      

  7.   

    app.path指的就是你的程序所在的运行目录,它通常被称为相对路径(如果你的程序在"c:\vb6"下,则app.Path的值就等于"c:\vb6"),如果你要打开的文件1.ini和你的运行程序在同一文件夹下,则绝对路径为"c:\vb6\1.ini",也可以写成:app.path & "\1.ini"。
    代码如下:
    if Right(app.Paht,1)<>"\" then 
        open app.Path & "\1.ini" for input as #1
    else
        open app.Path & "1.ini" for input as #1 
    end if
    close #1
      

  8.   

    thisfilename=iif(len(app.pat)=3,app.path & "a.txt",app.path & "\a.txt")
    open thisfilename for input as #1
      

  9.   

    通常用app.path就可以了用api的话,用getfullpathname