关于文件命名
作者:ghost 来源:CSS森林 发布时间:2009-09-18 16:29:00
遇到一个很实际的问题:由于不想增加目录的深度,减少磁盘寻址的时间,需要减少一些目录层级。
大家都知道建立文件夹是为了让文件管理更加的方便,现在需要减少文件夹,如何保持文件管理的方便就成为必需解决的。很容易我们想到通过命名来解决这个问题,那是不是随便一个命名都能起来方便管理的作用呢?样式的命名规则是否适用?对于样式的命名,在《 样式命名规则 》已经有讨论,可是样式的命名规则并不能被应用到文件的命名中,毕竟使用的环境不太一样,要解决的问题也不太一样。样式命名要解决的是名称语义化,通过名称能知道这个定义的作用范围;而文件的命名要解决的是更方便的找到对应的文件,当然如果名称有意义,也会有帮助,更重要是要解决同一文件夹下如何更快找到文件。
怎样才能更快找到需要的文件呢?操作系统通过路径能正确找到对应的文件,因为在每一层目录里,所有的标记(目录名、文件名)都是唯一的。而我们找一个文件,一般会需要下面的信息:
文件名(叫什么,一般这个信息会有缺失)
文件类型(图片?样式?页面?还是什么?)
所在域名、栏目的位置(在哪个地方?)
什么时间修改过
路径(就算知道了,一般也不是直接就能使用的,需要层层点击)
对于电脑来说,它并不需要目录名或文件名多容易看懂,只要符合命名规则、同一层级下唯一就可以。但对于我们来说,更希望能通过命名知道更多的信息,因此需要命名有一定的意义。回到一开始的问题,如果当前就在最后的一层目录里,面对那么多的文件,如何更方便找到需要的文件?没错,通过排序可以将文件进行分类,最常用的排序有三种:
文件名(以每个字母从A-Z的顺序排序)
按修改日期(以文件的修改日期为排序条件)
按文件类型(先将文件以类型分类,同类文件再以文件名排序)
为了更好的让排序发挥作用,文件的命名就需要有一些规则。文件名的组成大家应该清楚吧?一般格式为“名称.扩展名”。扩展名也是文件名的一部分,但这部分比较固定,没有什么可发挥的。前面“名称”的部分是我们讨论的重点。发散下思维,我们可以想到添加一些相对固定的词来起到分类的作用,我们称之为“缀”,从位置上可分为“前缀”和“后缀”。
常用的缀:预设目录名、文件类型、域名、日期、版本号
例如名称为“demo”,加上前缀或后缀的形式如下:
预设目录名:css_demo |demo_css
文件类型:png_demo | demo_png
域名:blog_demo | demo_blog
日期:20090904_demo | demo_20090904
版本号:v1_demo | demo_v1
前缀的作用:区分同一类型的文件名,由于操作系统的排序规则(同一类型的文件以文件名排序),因此前缀能很好的起到区分的作用。比较符合阅读的习惯。缺点是如果使用键盘导航(直接使用键盘可以跳到对应字母的文件位置),由于前缀相同,会有一定的影响。
后缀的作用:后缀一般用于版本的控制,像存档、多版本、备份等等。缺点是如果名称过长,不太直观。
我们来看看两种方式的差别在哪:
上面几个图是将添加了前缀和后缀的文件放到同一目录下,分别使用三种排序的结果。由于模块化的制作方式,文件一般会以模块为单位分布,使用前缀的时候往往会因为文件类型不一样使同一模块的文件被分散到不同的位置,而使用后缀反而可以很好的将同一模块的文件归到一起。从上面的图可以看出这点。因此在这种情况下,使用后缀会更方便于文件的查找。


猜你喜欢
- 之前安装mysql时未做总结,换新电脑,补上安装记录,安装的时候,找了些网友的安装记录,发现好多坑1、mysql-5.7.12-winx64
- 各种请求方式pip3 install requests>>> import requests>>> r
- 本篇我们将学习简单的json数据的存储首先我们需要引入json模块:import json这里我们模拟一个常见常见,我们让用户输入用户名、密
- 本文实例讲述了Python利用Scrapy框架爬取豆瓣电影。分享给大家供大家参考,具体如下:1、概念Scrapy是一个为了爬取网站数据,提取
- 前言第一次尝试用Pyinstaller打包Pytorch,碰见了很多问题,耗费了许多时间!想把这个过程中碰到的问题与解决方法记录一下,方便后
- 这篇文章主要介绍了基于Python获取城市近7天天气预报,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的
- 本文主要介绍了MySQL8.0.27安装过程中卡在Initializing Database中并报错的解决,具有一定的参考价值,具体如下:报
- 本文实例讲述了Python脚本实现虾米网签到功能的方法。分享给大家供大家参考,具体如下:概述这个脚本完成了自动登录虾米网、签到的功能。大致要
- 本文实例讲述了Flask框架模板继承实现方法。分享给大家供大家参考,具体如下:在模板中,可能会遇到以下情况:多个模板具有完全相同的顶部和底部
- 笔者在网上找了很多关于VSCODE配置Go语言的教程,但是由于版本等种种问题,最终都已失败告终。无奈只能在官方文档上寻求帮助,现在终于可以了
- 1、简介FastAPI 是一个用于构建 API 的现代、快速(高性能)的 web 框架,使用 Python 3.6+ 并基于标准的 Pyth
- Python开发环境配置好了,但发现自带的代码编辑器貌似用着有点不大习惯啊,所以咱们就找一个“好用的”代码编辑器吧,网上搜了一下资料,Pyt
- 项目场景:Python版本:3.8因公司业务需求,须开发一套局域网内视频会议软件,此次采用Python实现此功能。程序编写完并在编译器实现此
- 这篇文章主要介绍了python实现实时视频流播放代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的
- Dmitry这篇设计评论表单很有启发意义,尤其提到关键的评论内容、评论者信息录入顺序问题。好比我们在日常沟通时,对信息的反馈都是第一诉求,写
- 一、SeabornSeaborn 建于 matplotlib 库的之上。它有许多内置函数,使用这些函数,只需简单的代码行就可以创建漂亮的绘图
- 正在看的ORACLE教程是:Access2000迁移到Oracle9i要点。 &nb
- 学习到的内容:1.一个64位的int类型值,充分利用高32位和低32位,进行相关加减以及从一个64位中拆出高32位和低32位.扩展:如何自己
- 具体代码如下所述:__author__ = 'Yue Qingxuan'# -*- coding: utf-8 -*-#求质
- 原文地址:30 Days of Mootools 1.2 Tutorials - Day 8 - Input Filtering Part