简介

文件系统以某种形式的媒体(通常为一个或多个硬盘驱动器)存储和组织文件,使得它们可以容易地被检索。目前使用的大多数文件系统将文件存储在树形(或分层)结构中。在树的顶部是一个(或多个)根节点。在根节点下,有文件和目录(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. 联动选择通过ajax获取选择对应的数据

    网站有时候需要这种联动然后获取到想对应的数据 思路: 这种的话就是你每次选择哪一个就将这个设置一个标注 表示你现在选择的是哪一个 然后每选择一次就进行一次ajax查询,ajax里面有一个data里面添 ...

  2. Flutter /bin/sh: /packages/flutter_tools/bin/xcode_backend.sh: No such file or directory

    自己写项目中遇到的一个问题, 可以出来是路径找不到,应该是FLUTTER_ROOT这个全局变量没有取到值的原因 1.检查xcode_backend.sh 是否真的存在 2.网上说的:Target -& ...

  3. jquery iCheck 插件

    1 官网:http://www.bootcss.com/p/icheck/#download 2 博客:https://www.cnblogs.com/xcsn/p/6307610.html http ...

  4. IPython安装过程 @win7 64bit

    http://www.360doc.com/content/14/0902/11/16740871_406476389.shtml 为了测验测验一下IPython的应用,今天折腾了好久的从安装包msi ...

  5. iterable -------JavaScript

    本文摘要:http://www.liaoxuefeng.com/ 遍历Array可以采用下标循环,遍历Map和Set就无法使用下标.为了统一集合类型,ES6标准引入了新的iterable类型,Arra ...

  6. vbs自由选择启动bat文件

    1.首先创建一个文件夹用来放bat文件和配置文件. 2.然后在bat文件中写入启动程序.中间红色框是启动程序,外面程序是用来隐藏命令提示符的. 3.txt配置文件配置vbs启动项,vbs只能找到此文件 ...

  7. 快速搭建lvs + keepalived + nginx

      环境:   VIP         192.168.2.224 LVS        192.168.2.217     centos7 nginx1    192.168.2.231     c ...

  8. mysql中如何不重复插入,mysql 重复的不插入,mysql唯一的插入

    INSERT INTO new_schedules_spider_shipsname ( ID,SCAC,VESSEL,VOYAGE,SERVICE_NAME,MD5 ) SELECT NULL,%s ...

  9. python笔记-tuple元组的方法

    #!/usr/bin/env python #-*- coding:utf-8 -*- # 创建空元组 tuple1 = () print(tuple) # 创建带有元素的元组 # 元组中的类型可以不 ...

  10. HDU 1506 Largest Rectangle in a Histogram(单调栈、笛卡尔树)

    题意:给定n个连续排列的矩形的高,矩形的宽都为1.问最大矩形覆盖. 例如:n = 7,h[i] = (2 1 4 5 1 3 3),最大覆盖为8. Sample Input 7 2 1 4 5 1 3 ...