zoukankan      html  css  js  c++  java
  • File IO(NIO.2):什么是路径?

    简介

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

    什么是路径?

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


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

    /home/sally/statusReport

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

    C:homesallystatusReport

    用于分离目录名称(也称为分隔符)的字符特定于文件系统: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支持的核心。


  • 相关阅读:
    Web 学习笔记
    Canvas 实现灵动的红鲤鱼动画(上)
    Canvas 仿百度贴吧客户端 loading 小球
    使用 Vue 和 epub.js 制作电子书阅读器
    用 Vue 开发一个简单的答题应用(一)
    利用 html2canvas 做个简单的诗词卡片生成器
    FileSaver.js 介绍
    shim 和 polyfill
    clipboard.js 介绍
    (译)通过 HTML、JS 和 Electron 创建你的第一个桌面应用
  • 原文地址:https://www.cnblogs.com/hhx626/p/8320406.html
Copyright © 2011-2022 走看看