简介

文件系统以某种形式的媒体(通常为一个或多个硬盘驱动器)存储和组织文件,使得它们可以容易地被检索。目前使用的大多数文件系统将文件存储在树形(或分层)结构中。在树的顶部是一个(或多个)根节点。在根节点下,有文件和目录(Microsoft Windows中的文件夹)。每个目录可以包含文件和子目录,这些文件和子目录又可以包含文件和子目录,等等,潜在地几乎是无限的深度。

什么是路径?

下图显示了包含单个根节点的示例目录树。 Microsoft Windows支持多个根节点。每个根节点映射到一个卷,如C:\或D:\。 Solaris OS支持单根根节点,用斜杠字符表示。

通过文件系统的路径来识别文件,从根节点开始。 例如,上图中的statusReport文件通过Solaris操作系统中的以下符号来描述:

/home/sally/statusReport

在Microsoft Windows中,statusReport由以下符号描述:

C:\home\sally\statusReport

用于分离目录名称(也称为分隔符)的字符特定于文件系统:Solaris OS使用正斜杠(/),Microsoft Windows使用反斜杠斜杠(\)。

相对还是绝对?

路径是相对的或绝对的。绝对路径总是包含根元素和找到文件所需的完整目录列表。例如,/ home / sally / statusReport是绝对路径。找到文件所需的所有信息都包含在路径字符串中。

相对路径需要与另一路径组合才能访问文件。例如,joe / foo是一个相对路径。没有更多信息,程序无法在文件系统中可靠地找到joe / foo目录。

符号链接

文件系统对象通常是目录或文件。每个人都熟悉这些对象。但是一些文件系统也支持符号链接的概念。符号链接也称为符号链接或软链接。 
一个符号链接是一个专用文件,用作另一个文件的参考。在大多数情况下,符号链接对应用程序是透明的,符号链接的操作将自动重定向到链接的目标。 (指向的文件或目录被称为链接的目标。)异常是当符号链接被删除或重命名时,链接本身被删除或重命名,而不是链接的目标。
在下图中,logFile似乎是用户的常规文件,但它实际上是一个到dir / logs / HomeLogFile的符号链接。 HomeLogFile是链接的目标。


符号链接通常对用户是透明的。读取或写入符号链接与读取或写入任何其他文件或目录相同。
解决链接的短语意味着将文件系统中的实际位置替换为符号链接。在该示例中,解析logFile将生成dir / logs / HomeLogFile。 
在现实世界的场景中,大多数文件系统都能自由地使用符号链接。偶尔,一个不小心创建的符号链接可能导致循环引用。当链接的目标指向原始链接时,会发生循环引用。循环引用可能是间接的:目录a指向目录b,它指向目录c,其中包含一个指向目录a的子目录。循环引用可能会导致程序递归走路目录结构时的破坏。但是,这种情况已被考虑,并且不会导致您的程序无限循环。 
下一页讨论了Java编程语言Path类中文件I / O支持的核心。

File IO(NIO.2):什么是路径?的更多相关文章

  1. Linux Kernel File IO Syscall Kernel-Source-Code Analysis(undone)

    目录 . 引言 . open() syscall . close() syscall 0. 引言 在linux的哲学中,所有的磁盘文件.目录.外设设备.驱动设备全部被抽象为了"文件" ...

  2. Android(java)学习笔记167:Java中操作文件的类介绍(File + IO流)

    1.File类:对硬盘上的文件和目录进行操作的类.    File类是文件和目录路径名抽象表现形式  构造函数:        1) File(String pathname)       Creat ...

  3. System.IO在不存在的路径下创建文件夹和文件的测试

    本文测试System.IO命名空间下的类,在不存在的路径下创建文件夹和文件的效果: 首先测试创建文件夹: System.IO.Directory.CreateDirectory(@"C:\A ...

  4. Java OOP——第八章 File IO

    1.文件:文件可认为是相关记录或放在一起的数据的集合: 2.File类:名命空间:java.io File对象即可表示文件,也可表示目录, 在程序中,一个File对象可以代表一个文件或目录, 利用他可 ...

  5. Android(java)学习笔记110:Java中操作文件的类介绍(File + IO流)

    1.File类:对硬盘上的文件和目录进行操作的类.    File类是文件和目录路径名抽象表现形式  构造函数:        1) File(String pathname)       Creat ...

  6. Haskell语言学习笔记(19)File IO

    关于IO Action 类型为IO t. 运算时不执行,因而没有任何效果,只有执行时才会有效果,产生副作用. 一个IO Action只有在其他IO Action中才能被执行. 类型为IO t的IO A ...

  7. input file获取选择图片的本地路径和base64路径

    input file获取选择图片的本地路径和base64路径 本地路径: myHeadFile: function (e) { // 这里是input file 的onchange事件 ] const ...

  8. 使用任意的输入流(InputStream)实例,包括字符串形式的文件路径或者 file:// 的 URL 形式的文件路径来配置

    mybatis – MyBatis 3 | 入门 http://www.mybatis.org/mybatis-3/zh/getting-started.html 从 XML 中构建 SqlSessi ...

  9. IO NIO AIO及常用框架概述

    概述 nio 同步: 自己亲自出马持银行卡到银行取钱(使用同步IO时,Java自己处理IO读写). 异步: 委托一小弟拿银行卡到银行取钱,然后给你(使用异步IO时,Java将IO读写委托给OS处理,需 ...

  10. File IO(NIO.2):路径类 和 路径操作

    路径类 Java SE 7版本中引入的Path类是java.nio.file包的主要入口点之一.如果您的应用程序使用文件I / O,您将需要了解此类的强大功能. 版本注意:如果您有使用java.io. ...

随机推荐

  1. hiho一下 第三十九周 归并排序求逆序数

    题目链接:http://hihocoder.com/contest/hiho39/problem/1 ,归并排序求逆序数. 其实这道题也是可以用树状数组来做的,不过数据都比较大,所以要离散化预处理一下 ...

  2. java Vamei快速教程16 RTTI

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 运行时类型识别(RTTI, Run-Time Type Identificatio ...

  3. WMAppPRHeader.xml文件的作用

    对于很多开发者来说直接通过Visual Studio 2010生成的XAP文件和上传至App Hub通过Windows Phone Marketplace Technical Certificatio ...

  4. [Rodbourn's Blog]How to export Excel plots to a vector image (EPS, EMF, SVG, etc.)

    This is a bit of a workaround, but it's the only way I know of to export an Excel plot into a vector ...

  5. WARNING you have Transparen Huge Pages..

    redis启动警告: WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will c ...

  6. Bootstrap历练实例:轮播(carousel)

    <!DOCTYPE html><html><head><meta http-equiv="Content-Type" content=&q ...

  7. C/C++程序基础 (五)位运算

    C++中四种转换运算符的区分 const_cast 修改const和volatile属性 reinterpret_cast 指针间类型转换或者指针和整形的转换.二进制重新翻译. static_cast ...

  8. 二十九、MySQL 序列使用

    MySQL 序列使用 MySQL 序列是一组整数:1, 2, 3, ...,由于一张数据表只能有一个字段自增主键, 如果你想实现其他字段也实现自动增加,就可以使用MySQL序列来实现. 本章我们将介绍 ...

  9. Flask初学者:session操作

    cookie:是一种保存数据的格式,也可以看成是保存数据的一个“盒子”,服务器返回cookie给浏览器(由服务器产生),由浏览器保存在本地,下次再访问此服务器时浏览器就会自动将此cookie一起发送给 ...

  10. 用描述符实现classmethod方法和staticmethod方法

    1. @classmethod class ClassMethod: def __init__(self, func): self.func = func def __get__(self, inst ...