`

关于文件路径方面的小麻烦

阅读更多

原文出处:http://hxraid.iteye.com/blog/513468

 

写程序的时候经常引用外部资源,这个时候通过文件路径定位就相当重要了。

 

问题提出

       在Eclipse工程中写一段代码,想要调用工程中的某一个资源文件。

File file=new File("/EclipseProj/res.txt");
.... //读取文件

  一运行,总是说res.txt找不到。只要将路径改成"EclipseProj/tes.txt"即可。不知为什么?

 

症结所在

       没有搞清楚相对路径中' / '的作用,"/Director/File"与"Director/File"完全是两个不同的路径。

       下面详细看看文件路径的表示。

       关于文件路径的表示一般两种:绝对路径 相对路径

       1、绝对路径

            很简单,举个例子  e:/everywork/cwf/WriteFree/resource.txt

            这种从根目录开始一级一级目录完全表示出来的形式就是绝对路径。

       2、相对路径

            (1)  WriteFree/resource.txt 形式

            这种形式是相对与当前目录 而言的。如果你当前所在的目录是e:/everywork/cwf/,你们系统会在这个目录下寻找WriteFree/resource.txt,自然和绝对路径是一样的。当然,如果当前目录是e:/,这样就在e盘符下的第一级目录中寻找WriteFree/resource.txt,其实也就是e:/WriteFree/resource.txt。

            (2)  /WriteFree/resource.txt 形式

            这种以 '/' 开头的相对路径形式很有迷惑性。

            通常我们使用 '/' 来表示根目录 ,/WriteFree/resource.txt就表示resource.txt文件在系统的根目录上的WriteFree目录里。但是这样使用对于初学者来说是具有风险性的,因为要知道这里所指的根目录并不是你的当前目录,而是你资源所在的磁盘的根目录, 也就是所跟目录是c:/  e:/  g:/之类的。那么这种相对路径形式其实是相对于根目录而言,等同于绝对路径e:/WriteFree/resource.txt。

 

下面我们在Eclipse中写一个读工程内资源文件的例子来看看:
(1)用Eclipse建立一个工程WriteFree放在e:\everywork\cwf目录下,然后在工程中放入资源文件res/resource.txt
(2)在WriteFree工程下编写代码:

File f1=new File("res/resource.txt");
System.out.println("f1:"+f1.getAbsoluteFile());
File f2=new File("/res/resource.txt");
System.out.println("f2:"+f2.getAbsoluteFile());
//运行结果如下:  f1:  e:\everywork\cwf\WriteFree\res\resource.txt
//                       f2:  e:\res\resource.txt 

 

(3)结果很明显,小小的差别导致f1和f2两个路径截然不同

分享到:
评论

相关推荐

    Q-Dirx64多窗口文件操作软件

    它的快捷链接栏允许用户保存经常访问的文件夹路径,方便一键直达,省去了频繁查找的麻烦。 对于需要处理大量文件的用户,Q-Dir x64的批量操作功能尤为实用。无论是批量重命名还是批量移动,都能在短时间内完成,...

    录屏软件安装包压缩文件

    这意味着在开始录制前,你可以选择视频保存的具体位置,避免录制后的查找麻烦。此外,它支持多种视频格式输出,如MP4、AVI、WMV等,用户可以根据需求选择最合适的格式。 在录屏功能方面,oCam提供了全屏录制和...

    wsyscheck中文版

    其列表都可以手动编辑,一行一个文件路径即可。关闭程序时如果上述两者之一存在删除列表,会问询是否执行。 注意,为避免病毒程序守护,Wsyscheck可以在删除某些文件时可能会采取0字节文件占位的方式来确保删除。...

    wsyscheck by wangsea

    其列表都可以手动编辑,一行一个文件路径即可。关闭程序时如果上述两者之一存在删除列表,会问询是否执行。 注意,为避免病毒程序守护,Wsyscheck可以在删除某些文件时可能会采取0字节文件占位的方式来确保删除。...

    wsyscheck--强大的清理病毒木马的工具

    其列表都可以手动编辑,一行一个文件路径即可。关闭程序时如果上述两者之一存在删除列表,会问询是否执行。 注意,为避免病毒程序守护,Wsyscheck可以在删除某些文件时可能会采取0字节文件占位的方式来确保删除。...

    Wsyscheck.rar

    其列表都可以手动编辑,一行一个文件路径即可。关闭程序时如果上述两者之一存在删除列表,会问询是否执行。 注意,为避免病毒程序守护,Wsyscheck可以在删除某些文件时可能会采取0字节文件占位的方式来确保删除。...

    Wsyscheck0119中文版

    其列表都可以手动编辑,一行一个文件路径即可。关闭程序时如果上述两者之一存在删除列表,会问询是否执行。 注意,为避免病毒程序守护,Wsyscheck可以在删除某些文件时可能会采取0字节文件占位的方式来确保删除。...

    Wsyscheck20080122(中文版)

    其列表都可以手动编辑,一行一个文件路径即可。关闭程序时如果上述两者之一存在删除列表,会问询是否执行。 注意,为避免病毒程序守护,Wsyscheck可以在删除某些文件时可能会采取0字节文件占位的方式来确保删除。...

    Wsyscheck 3

    其列表都可以手动编辑,一行一个文件路径即可。关闭程序时如果上述两者之一存在删除列表,会问询是否执行。 注意,为避免病毒程序守护,Wsyscheck可以在删除某些文件时可能会采取0字节文件占位的方式来确保删除。...

    是关于XML方面 的。

    2. 同步解析(DOM,Document Object Model):将整个XML文档加载到内存中形成树形结构,便于遍历和操作,适合小文件或频繁访问的场景。 3. DOM4J、JDOM、XOM等库提供了Java中处理XML的便利工具。 4. LINQ to XML是...

    Total commander 7.02a

    另一方面它又超越了现在的压缩软件,支持直接对压缩包内文件改名,对压缩包内部搜索,甚至直接在两个压缩包间拷贝文件。  (二)、批量文件改名  Total Commander的文件改名功能足以让专业软件自叹不如。你所...

    UNIX环境高级编程中文版

    通过以上内容可以看出,《UNIX环境高级编程》涵盖了UNIX操作系统的基础知识、登录流程、shell程序的选择及文件系统的管理等方面,旨在为读者提供全面深入的理解,帮助他们在UNIX环境中进行高效的编程工作。

    [多标签窗口]Clover_Setup

    这个工具的出现解决了传统文件资源管理器中频繁切换窗口的困扰,减少了在多个文件夹间来回跳转的麻烦。 Clover_Setup 的核心功能在于将单一的文件窗口转换为带有多个标签的界面。用户可以在同一个窗口中打开不同的...

    WInce字体修改图文教程

    我们需要编辑注册表项来指定新的字体文件路径和使用规则。具体操作步骤如下: 1. **获取新字体文件**:下载或创建适用于WinCE的字体文件,将其复制到设备上合适的目录,例如 `\Windows\Fonts`。 2. **备份注册表**...

Global site tag (gtag.js) - Google Analytics