如何实现根据文件路径直接打开对应文件目录

如何实现根据文件路径直接打开对应文件目录,第1张

关于CFile的文件路径,分两种方式,一种是绝对路径,一种是相对路径。

绝对路径就是”D:\\a\\xx.txt"的形式,你可以直接指定,也可以用CFileDialogd出对话框由用户界面指定;

相对路径分默认路径和工作路径获取两种。你可以用".\\aa\\xx.txt"指定默认目录子目录或者省略前面的.\\也是可以的;工作路径获取比较靠谱(因为默认路径可能会造成不确定性,在程序运行过程中可能会被其它原因改变),工作路径要在程序运行入口的时候通过GetCurrentDirectory函数获取并保存起来,方便随时使用,这个是一个例如"d:\\yourProject\\"的字符串形式,每次拼接子目录和文件名即可,示例代码如下:

你可以,提取完整路径之后,再提取。文件名和扩展名

%~nx0

然后用set

将完整路径的文件名+扩展名替换未空。

使用方法。

set

path=%path:文件名和扩展名=%

然后得出的%path%即使路径目录。

还有一个方法就是

得到完整文件路径,有CD进入

然后

%cd%

即使目录。

看这个,试试你就知道了。

@echo

off

set

paths=%0

cd

%paths%

echo

%cd%

pause

然后以你的为例。

@echo

off

set

pathA="C:\Work\1.txt"

cd

%patha%

echo

%cd%

pause

File类有两个常用方法可以得到文件路径一个是:getCanonicalPath(),另一个是:getAbsolutePath(),可以通过File类的实例调用这两个方法例如file.getAbsolutePath()其中file是File的实例对象。下面是一个具体例子:

public class PathTest

{

public static void main(String[] args)

{

File file = new File(".\\src\\baidu")

System.out.println(file.getAbsolutePath())

try

{

System.out.println(file.getCanonicalPath())

} catch (IOException e)

{

e.printStackTrace()

}

}

}

getAbsolutePath()和getCanonicalPath()的不同之处在于,getCanonicalPath()得到的是一个规范的路径,而getAbsolutePath()是用构造File对象的路径+当前工作目录。例如在上面的例子中.(点号)代表当前目录。getCanonicalPath()就会把它解析为当前目录但是getAbsolutePath()会把它解析成为目录名字(目录名字是点号)。

下面是上面程序在我电脑上的输出:

G:\xhuoj\konw\.\src\baidu

G:\xhuoj\konw\src\baidu


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12032068.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存