- 文件路径相关内容
- 全文件名(绝对路径):指文件在文件系统中从根目录开始的完整路径,包含盘符和所有上级目录。例如,
f1.java的全文件名为D:\Program\Java-prog\f1.java,其中D:是盘符,\Program\Java-prog\是多级目录结构,f1.java是文件名。 - 相对路径:相对于当前工作目录的路径。若当前工作目录为
D:\Program,则访问f1.java的相对路径为Java-prog\f1.java。相对路径不包含盘符,依赖于程序或用户的当前所在位置。
- 文件的存取方法
- 顺序存取:按照文件内容的逻辑顺序进行读写操作,如从头到尾逐字节处理。典型应用包括文本文件的逐行读取、编译器对源代码的扫描等。
- 随机存取(直接存取):允许以任意顺序访问文件中的任意位置,通常通过字节偏移量定位数据。适用于数据库文件、索引文件等需要快速跳转的应用场景。
- 文件存储空间管理
核心目标:高效管理磁盘等外存设备上的空闲物理块,提高存储利用率和文件访问效率。
常用管理方法:
- 空闲区表:记录连续空闲区域的起始块号与块数,适合连续分配方式,但易产生外部碎片。
- 位示图(Bitmap):用一个二进制位表示一个物理块是否被占用,便于实现合并与查找,广泛用于现代文件系统(如FAT、ext系列)。
- 空闲块链:将所有空闲块链接成链表,每次分配时取出一块,释放时插入链中,简单但效率较低。
- 成组链接法:将空闲块分组管理,每组保存下一组的地址,结合了链表与索引的优点,常用于大型文件系统(如UNIX的i-node系统)。
通常根据使用场景和需求来判断是使用相对路径还是绝对路径更合适。以下是具体判断依据:
使用相对路径更合适的场景:
- 程序或项目需要可移植性,例如将整个项目文件夹移动到其他目录或不同计算机上时,内部文件引用仍能正常工作(如
Java-prog\f1.java)。 - 当前工作目录明确且稳定,且目标文件位于当前目录的子目录或上级目录中(如使用
..\config\settings.txt访问父级目录中的配置文件)。 - 编写脚本、构建工具或开发环境配置时,希望路径简洁并基于项目结构组织。
- 程序或项目需要可移植性,例如将整个项目文件夹移动到其他目录或不同计算机上时,内部文件引用仍能正常工作(如
使用绝对路径更合适的场景:
- 需要确保路径唯一性和稳定性,不受当前工作目录变化影响(如系统服务、后台进程读取固定位置的日志文件)。
- 跨项目访问共享资源(如
D:\Data\shared.db),避免因启动目录不同导致文件找不到。 - 在多用户或多环境系统中,需精确定位系统级文件(如配置文件、驱动程序等)。
✅总结判断方法:
如果文件位置相对于项目或执行目录是固定的 → 使用相对路径;
如果文件位置在整个系统中是唯一且不变的 → 使用绝对路径。