如何实现根据文件路径直接打开对应文件php 当前目录路径

如何整理电脑文件夹?
相信电脑已经深入每个人的工作和生活,这里涵盖两种情况,公司电脑以及个人电脑,如何让文件夹有序,查找文件快速方便,已经成为一个重要课题。大家愿意分享自己的心得和经验么?
我在整理电脑资料时本着如下原则(个人&工作电脑):1. 文件夹按照层级关系命名清楚,且按照可扩展性优先原则来划分层级比如这样分类就是比如这样分类就是错误的,因为如大二 - 课程 - 哲学不只有课件,还可能有资料或其他文件夹,把课件划分在最上层层级则不科学了,可以改成如下层级:2. 文件不常用的打包起来如这种可能只看一次就不会再看的文件 【但是又不舍得删掉 T_T 我擦真纠结如这种可能只看一次就不会再看的文件 【但是又不舍得删掉 T_T 我擦真纠结果断打包起来3. 所有文件文件夹开头以拼音首字母命名上面的图中都按照此命名规则,好处是比如我想找 大学 - 大二 - 哲学 - 课件 我打开最上层文件夹后只需要一路按 d - d - z - k 就行了,这样即使不用搜索也可以很快的定位文件,而且文件夹的层级关系条理清晰,十分利于该文件夹的维护。4. 其他情况a. 当存在英文名文件/文件夹时为了美观可以尝试将英文翻译成中文,或将中文翻译成英文为了美观可以尝试将英文翻译成中文,或将中文翻译成英文若不可避免要用到英文名,如上面的翻译若不可避免要用到英文名,如上面的翻译不明确文件太搓了,可以再次进行分类此外,善用搜索比如我想搜索欧洲什么史,忘了具体名字如果我输入欧洲作为搜索关键词,搜索结果可能如图,此时信噪比过大,还得在搜索结果中继续找此时可以搜索欧洲 史关键词,不记得的部分用空格代替即可
每个人收藏的资料不一样,整理规则也不一样,而规则是根据每个人的习惯定义的。一般来说,一个好的整理方法就是在长时间的整理下,琢磨出一套自己的整理规则。在某种程度上,它取决于这台电脑是以工作为主还是娱乐为主。所以,别人的方法并不一定适合你,你最好根据自己的需要,定制出一套适合你的整理方法。一.硬盘分区(这是我的,可根据自己需要参考)C盘:系统盘,软件盘D盘:文件盘,资料盘二.文件分类一千个人有一千零一种对文件分类的方法,对于任何一种分类法来说,适合你的是才是最好的。你最好根据自己的需要,定制出一套适合你的分类方法。可参考以下建议。把有关的文件存放在一起,而不去管他们的格式(对于工作文件尤其应当重视,这样查找起来不容易漏掉)对于正在编辑的文件,将待做的和已完成的区分开来(处理中的、待处理的文件,建议快捷方式到桌面,这样可以随时警告自己,要尽快的处理,留给自己一个清洁的桌面)当一个子目录中的文件过多时,你就应该继续往下建立子目录(一个文件夹中有上百文件的话,查找会比较费劲,所以得往下分类)分类的细化就意味着层级增多。层级越多,浏览的效率就会越低,所以整个结构最好控制在三级以内。越常用的类别,级别就应该越高(意味着可以更快的访问),你可以选择将目录的层级上调,或者发送这个目录的快捷方式到桌面多媒体文件是一个大分类,详细说明图片:木有用过软件,不过大部分知友都推荐用Picasa音乐:音乐发烧友们已经讨论的很清晰了-文本:对于文本文件,如 所言:不要把文本放在一个个doc文件中,最好使用笔记软件(比如Evernote),能够实现全文搜索,更利于管理(当然小说之类比较大的就不要了)Word/PPT/Excel:windows系统允许对其添加标记(添加标记的地方在细节窗格,具体:文件浏览器&窗格&详细信息窗格)重要:也有一些人比较懒,不愿意每次下载文件就分类存放,比如我。所以我在桌面新建了一个“待分类”文件夹,刚下载、保存的文件,我会直接扔里面,当文件累积到一定数量时,再进行分类整理(容忍底线有两条:1,文件太多影响了浏览体验;2,文件总量太大占用了C盘空间)神器:everything——用过的人都说好!========================友情提示========================任何分类法的原则必须且只能是:为了更快找到需要的文件。一切与此原则相悖的分类法都应舍弃。三.文件命名文件的命名必须重视,建议用容易记住的词给文件命名,方便以后检索。这能让你不需要打开文件就知道大概的文件内容,这样的命名才是好命名。1.尽量关联起文件内容,越详细越好001.avi,显然,不打开文件你是不会知道内容到底是什么苍井そら.avi,那么你就知道它的内容是什么了苍井そら.avi,你知道这是什么时候拍的片了最详细的命名,应该是有时间,有番号,有人物,有类型,有星级……比如:[ONED-944]SM-ギリギリモザイク 仆だけのアイドル 苍井そら (、S1 NO.1 STYLE)2.按照时间线命名(此方法现在已舍弃,现在更倾向于 dir[年]dir/[月]/文件 的形式)比如我大一的时候学习C语言,我对文件的命名是120912_helloworld.cpp121013_for.cpp121122_calculator.cpp这样做的好处就是,你可以很轻松的找到某个具体时刻处理过的文件四.定期清理对于资料来说,最重要的是了解你存储的资料对你是否有用。如若不能吸收转化为知识能力,资料再多也不能体现其价值,而且会让你的文件过于繁杂,因此定期清理无用文件尤为重要。以下文件可参考清理:已过期,无任何保留价值的文件有时效性的文件个人认为不值得继续保留的文件可以从网络上轻易下载到的文件*做到以上四条的答主,现在主用电脑里只有一个120G的C盘,且空闲空间经常在70G以上五.桌面整理从实用性和美观程度考虑,桌面尽可能不要放太多快捷方式,同时建议你将最常浏览的一些文件夹的快捷方式发送到桌面。假如你安装了很多软件,那么软件的快捷方式则应使用桌面整理工具管理,比如“Executor”、"HDShortcutter"之类的另外,最最常用的软件应固定到任务栏。比如浏览器。六.杂项1.文件操作技巧1)同时打开多个指定目录第一步:按住ctrl键,然后鼠标左键单击选择需要打开的目录第二步:按enter2)批量命名(该方法适用于对大量相关联的文件命名)第一步:首先按自己理想的排序手动调整好文件顺序。第二步:全选所有文件,在第一个文件上击右键,重命名该文件,如改为“pic.jpg”,然后按回车,就会全部重命名完毕。第一个文件为pic(1).jpg,第二个为pic(2).jpg,第三个为pic(3).jpg……(用这种方法同样可以批量重命名文件夹。)3)鼠标拖动(同分区内)一个文件到另一个文件夹时,直接拖动是“移动”,按住ctrl,就变成了"复制";从一个分区到另一个分区,直接拖过去是“复制”操作,按住shift才能变成“移动”。4)查看文件大小:alt+enter多选后可查看2.定期备份重要的文件显然是要定期备份的,这个必须重视,不然到时候丢了买都买不回来个人的备份工具是: 坚果云 + Google dive + 移动硬盘3.善用windows自带的搜索功能(可使用everything替代)星号(*): 星号在文件中代表任意的字符串。比如搜索*.doc,就可以搜索到当前目录及子目录下所有以 doc 作为后缀的文件。搜索*ese,就可以搜索以ese结尾的所有单词,例如:Chinese,Japanese, etc。AND(大写):搜索结果中必须包含所有关键字;OR(大写):搜索结果中必须包含任一关键字;下拉窗格中还可以对搜索条件进行筛选:1,修改日期;2,大小
一个好的文件夹组织方式能够很大程度上提高资源的可用性,用户能够快速寻找到需要的文件,不必记忆也能清楚的了解自己都拥有哪些资源,从而更有利于对资源的管理和利用。为了能够快速地找到目标资源文件,我们不应该对资源过分的细分,否则自己也不知道该去哪里找到它,同时,要有科学的分类以及规范的命名。我的电脑里有“系统(C:)”和“资源(D:)”两个分区,“系统”分区安装有操作系统以及各种软件,如果有游戏的话我也会把它们安装在这里,对于一个700GB的硬盘来说我给它分配了200GB,剩下的都留给“资源”分区了。为什么我不给“软件”、“音乐”或“电影”单独分区呢?最主要的原因在于,这样做不能很好的利用磁盘资源,这些不同类型的资源占用磁盘空间的大小并不是固定的,比如拿200GB的空间分一个“电影”分区,在电影资源很少的时候,剩下的空间就浪费了(拿来放其他东西的话,时间久了就会造成管理混乱),在电影资源太多的时候,就需要占用其他分区的空间了(另一种混乱)。如果你没有办法保证这个分区的资源所占用的空间是稳定的话,我推荐你不要这么做。并不是一定要对资源分区才能对资源分类,文件夹同样可以,图片、文档、音频、视频、软件安装包只不过都是不同类型的资源而已。我的D盘如下:如果说上一级的分类方法是按资源的类型来分的话,那么这一级就是按资源的用途来分了,也许在这一级中我的分类并不十分适合你,仅做参考。在图片文件夹里,我分了三个子文件夹:文档的用途很多,是一个比较复杂的资源类型,我是一个正在复习考研的程序员,因此我的文档这样分:“编程”中是我正在编写的项目,“程序”是已经完成的项目的归档。“导图”是一些思维导图,“课件”是一些大学时候的PPT,“已读”和“在读”都是一些读书笔记,里面的组织方式都是和“书籍”文件夹相同的:关于音频,由于我拥有的音频文件几乎都是音乐,因此干脆就叫音乐好了,我是根据“艺术家”-“专辑”的方式组织的:关于音频,由于我拥有的音频文件几乎都是音乐,因此干脆就叫音乐好了,我是根据“艺术家”-“专辑”的方式组织的:在视频的分类中,单集的动漫(比如宫崎骏和新海诚的作品)或纪录片(比如《浮生一日》、《逐冰》)都属于电影。而“动漫”里的主要是TV版或OVA,纪录片主要是BBC的。“软件”是指一些软件安装包,而不是已经安装好的软件,有些软件不常更新甚至停止更新,已经成为了经典,我会把它们放在“经典”文件夹里,以免要用的时候再去网上寻找,“镜像”是指iso格式的镜像文件,“驱动”是本机的一些驱动程序,重装系统的时候用得着,“游戏”虽然不怎么玩了,我还是有收藏一些的。“字体”是一些字体的安装包。需要提醒你的是,现在许多软件都会经常更新,对于这些软件的安装包,我认为没有必要保存,安装完之后就删掉好了,需要的时候再去网上下载,不然你要管理它们其实也是挺麻烦的。至于“下载”文件夹,当然就是下载管理器(比如我用的QQ旋风)的默认目录了。至于“下载”文件夹,当然就是下载管理器(比如我用的QQ旋风)的默认目录了。对于当前正在处理的文件,我会把它们放在桌面,这样我就能知道我手头的工作是什么了(还有哪些事情没有完成),处理完之后要么是归类了,要么是删除了。我的资源管理器安装了一个叫“Clover”的插件,因此才有多标签页的功能,而且我设置了默认打开就到“资源(D:)”分区,这样就方便多了。--------------------------------------------------------------------------------------------------------------------------------------------既然大家都缺个这东西,我就利用空闲的时间做了一个,比较简陋,也没怎么测试,将就用着吧。既然大家都缺个这东西,我就利用空闲的时间做了一个,比较简陋,也没怎么测试,将就用着吧。左边选中需要更改图标或备注的文件夹,右上可以拖 ico 格式的文件进去,右下可以填写备注,最后点更改按钮。顺便说一下,如果你想让某个文件夹按某种顺序排列,而又不想排列的依据被看到,可以利用备注信息,比如这样:
图片交给Picasa解决其他文件……我基本没有其他文件。
深夜码字刚回答完另一个问题,呼~~~发现其实这个问题我也能插上嘴呢。如何让文件夹有序,查找文件快速方便针对这个问题,我的经验是:1、优化文件夹的结构体系,明确每个文件夹承载的内容和具体意义,根据自己实际需要尽可能将方方面面都考虑进去。做到有广度,有深度,不重复;2、将内容放在对应的文件夹内;3、制定符合逻辑规则的完整清晰的文件名;如果能瞬间明白寻找内容的类型,在对应的文件夹内找到自然是最好,如果不行不是还有搜索嘛 ^_^ ,希望下面的回答能解决你的困扰。问题链接----------------------------------------------------原文--------------------------------------------------不妖自high~请允许我把楼主的问题分成两部分,根据这两个问题来谈谈我亲历的一些经验,希望对题主有帮助^_^1、如何能够“很久都不用重新整理”尽量的一劳永逸?我认为做到这点需要经历几个过程:漫无规则的随意命名或整理;觉得使用不便,开始寻求方法;见到各种方法都觉得很有道理,但这些方法却总有互相矛盾的地方,于是按自己喜好开始尝试模仿;“我去!摔~”在日常使用中发现,“别人的方法”总是各种别扭,不能完全照顾自己的喜好;开始思考在“别人的方法”的基础上根据自己的喜好进行调整;逐步提炼出适合自己的整理方式,并能不时优化调整;最终走向两个结局:a、始终沿用自己提炼出的方法,不再轻易改变;b、不断优化调整自己的整理方法,同时资料被整理了无数次,消耗巨大能量还不自知;我想说的是,资料是整理不完的,各种严谨的不严谨的方法,会蒙蔽住你的双眼,让你陷入一次又一次推翻重来的窘境。我的建议是,适当的耗费精力和时间,进行一段日子的深度体验,把握住对“整理技术”的需求,尽量做到“只要够用就好”。才不至于在整理文件的课题上陷入泥潭。正因为经历过这个过程,所以特别希望能在同类问题上帮助到有困惑的同学,希望你能站在过来人的教训上,快速地寻找到适合自己的方式,尽可能地思考答主的用意及思维,而不是照搬“别人的方式”。----------------------------------------------------分割线---------------------------------------------------一、文件夹如何整理?下面聊聊答主在用Wiz为知笔记取代传统整理方式前的文件夹整理技巧,其中混入了不少“用知识管理软件才应该这么分类”的方式,请见谅:答主的电脑中只有两个盘符,C盘(SSD闪盘)和D盘(机械硬盘)。C盘(执行操作)中的内容:系统文件;最常用的软件,如:Adobe系列、Everything、ACDSee等;极个别游戏,如:LOL……因为闪盘的读写速度够快,这些使用频繁的应用可以省去不少时间。D盘(内容存储)中的内容:Works(工作文件夹)Games(游戏文件夹)Documents(资料文件夹)Materials(素材文件夹)Art Work(艺术文件夹-纯兴趣)Inbox(孵化箱,所有未归档的临时文件)APP(软件安装文件夹)Backups(QQ备份、软件缓存、Evernote / Wiznote 的数据存储、我的文档)Downloads(专门用于存放主动下载的文件,其实可以和Inbox合并)Works按工作领域、工作性质进行分类:--& 01_XXX情趣商城--& 02_XXX红酒店--& 03_网站设计因为工作性质的差异这里不介绍粒度太细的分类,仅作一个演示:--& 01_XXX情趣商城----& 01_运营------& 11_数据分析------& 12_日常维护------& 13_工作进度----& 02_设计------& 21_产品AAA--------& 211_首图--------& 212_详情页--------& 213_KV、钻展、直通车------& 22_产品BBB------& 23_店铺首页------& 24_摄影------& 25_绘画----& 03_客服----& 04_仓储----& 05_业务----& 06_财务等等……Documents按照文档、资料的类型进行分类--& Adult-成人(工作中最重要的资料支持,单开一个文件夹)--& Office-办公(用于工作的通用性文档、模板、资料、知识)--& Life-生活----& 乐(什么好玩,去哪里玩,怎么玩)----& 活(袜子放在哪个抽屉,找谁开锁,怎么收纳有效率,如何布置房间等等……)----& 衣(怎么穿衣搭配,适合什么发型,喜欢什么双肩包,别人怎么穿)----& 食(什么好吃,哪里好吃,怎么吃的好)----& 住(公积金什么玩意,哪个中介靠谱,怎么装修)----& 行(去过哪些地方,想去哪些地方,不去后悔一辈子的地方,自驾游攻略)----& 健康(怎么减肥,怎么健身,跑步注意什么,网球是个球?)----& 人脉(略……)----& 财富(什么是P2P,怎么理财,天使投资在哪)--& Study-学习----& PKM-知识管理----& PM-项目管理----& GTD-时间管理----& Office-办公技巧----& Wisdom-人情世故等等……--& Interest-兴趣----& APP-应用(PC的APP,Mac的APP,iPhone、iPad、Android的APP的名字清单或评测文章)----& Product-产品(好看的包装设计、喜欢的椅子、牛x的互联网产品等等)----& Music-音乐(简单来说就是MP3、APE、MV等)----& Read-阅读(书籍&ePub、PDF、EXE&、漫画、杂志)----& Technology-科技(物联网、3D打印、人工智能之类相关的乱七八糟的东西,呵)--& Memory-记忆----& Idea-灵感----& Photo-照片----& Password-密码(门禁密码、旅行箱密码等不存放在1password软件中的)----& Diary-日记----& Feidee-账本(随X记软件导出的记录、信用卡消费凭证之类的)----& Contacts-联络(某某时间和谁互动了、通讯录、短信记录之类的)----& Reading-阅读/观看(读到哪本书的哪、看了哪部美剧的第几集、扫视某个设计博客的第几页之类的……)Materials按照素材、资源的类型进行分类--& Gallery-图库--& Fonts-字体----& 中文_书法----& 中文_手写----& 中文_楷体----& 中文_行书……----& 英文_风格1----& 英文_风格2……----& 日文----& 韩文----& 数字----& 符号……--& Color-配色--& APP Files-应用文件----& Actions-动作----& Brushes-笔刷----& Patterns-图案----& Styles-样式----& Plug-ins-插件等等等等……--& Icon-图标--& Wallpaper-壁纸--& Tutorial-教程等等等等……这里有个很深的体会是,按照上述结构的分类在实际使用中其实是很坑爹的,最近正在调整为“以主题进行区分”。改进前的结构是:--& Actions-动作----& 找到“羽毛”动作--& Brushes-笔刷----& 找到“羽毛”笔刷--& Patterns-图案----& 找到“羽毛”图案我认为改进后的结构更适合实际工作应用:--&羽毛----& “羽毛”.动作_01(不需要再嵌套文件夹了,直接全部罗列出来,靠文件名排序)----& “羽毛”.动作_02----& “羽毛”.笔刷_AA----& “羽毛”.笔刷_AB----& “羽毛”.图案_X1----& “羽毛”.图案_X2--& 翅膀--& 雨伞…………Art Work这里放的都是我收藏的艺术“鉴赏”类的图片资料,文件夹参考(被墙)的结构--& Advertising-广告----& Direct Marketing*直销----& Online-线上----& Outdoor-户外----& Print 平面…………--& Artisan Crafts-手工艺术----& Architectural Models-建筑模型----& Ceramics-陶瓷----& Glass-玻璃----& Toys-玩具…………--& Designs & Interfaces-设计和界面----& Architectural-建筑设计----& Fashion-服装设计----& CD Covers-CD封面----& Packaging-包装…………--& Photography-摄影----& Abstract-抽象----& Animals-动物------& Amphibians-两栖------& Aquatic-水生物------& Birds-飞禽------& Mammal-哺乳……----& Commercial-商业----& Conceptual-概念…………--& Digital Art-数字艺术--& Traditional Art-传统艺术等等等等……----------------------------------------------------分割线---------------------------------------------------呼呼呼呼~~~~~~~~~~~~好累啊~~~~~~~~~~二、文件怎么命名?文件名的组成元素(当然,你可以找到更多,但是够用就好不是吗?):所属类别,例:知识管理、金融常识、素材图库核心内容,例:时间表、报价单、案例分析主关键字,例:西方,设计,绘画修订时间,例:特殊编号,例:A0001,ABC05版本编号,例:设计稿_01,杂志_vol01我们根据以上元素,对下方物料进行重命名。例:原来的文件名为:Getting things done.pdf 的电子书第1步,考虑所属类别,参考你自己的知识体系、文档体系:[书籍]-[管理]-[效率]_Getting things done.pdf
第2步,考虑核心内容:[书籍]-[管理]-[效率]_【Getting things done】.pdf(书名就是核心内容),或
[书籍]-[管理]-[效率]_【Getting things done-读书笔记】.pdf,或
[书籍]-[管理]-[效率]_【Getting things done-中文翻译版】.pdf
第3步,考虑修订时间,如果文件确实需要修订,或者你希望从时间上溯源的话:[书籍]-[管理]-[效率]_【Getting things done-中文翻译版】_[].pdf
第4步,考虑特殊编号,一般只在核心内容不太好描述的时候采用特殊编号来代替,一般用在图片素材上。[书籍]-[管理]-[效率]_【A00001】_[].pdf
第5步,考虑版本编号,如果确实需要版本迭代的话,修订时间不够用时才考虑[书籍]-[管理]-[效率]_【Getting things done-读书笔记】_[]_02.pdf
第6步,考虑主关键字,相当于在文件名上做简单的打标签处理[书籍]-[管理]-[效率]_【Getting things done-读书笔记】_时间管理-豆瓣推荐-必读好书_[]_02.pdf
“-” 中杠:连接符,同属性词之间的链接;“_” 下划线:间隔符,不同属性词之间的间隔。至此,一个完整的文件名就设定好了。符号的运用请结合自身习惯,我的目的在于识别清晰,前面类别加“[]”比较清晰,中间主题加“【】”为了强化,后面关键字/Tag不加符号是因为不需要让肉眼识别,是用来做搜索补充的。我们再通过一个简单的栗子来温顾一下:原文件名:光男的栗子.mov
修改后的文件名:[电影]-[日本]-[剧情]_【光男的栗子-天朝字幕组】_桃井薰-看不懂-获奖_[].mov
完,最后我想说的是,不管是内容的品质,还是回顾的频率,这些的重要程度都远远大于文件结构的完善繁复。别向我学习,我正在脱坑。完。
查找文件快速方便并启用顺手的全局热键并启用顺手的全局热键
邀,打完之后发现大家说的基本都差不多……【PART1 文件夹整理原则】1、集中有的人C盘放个相片文件夹,C盘满了D盘再建一个文件夹,然后再来E盘一个,整理的大忌,所以不要分那么多区,一个盘一个区可以了,顶多
吧C盘单独分出来,主要是C盘那些默认文件夹太多太难看了。什么你有很多零碎的小硬盘250G有4个?都卖2手换个1T的吧,损失不了太多。2、正交数学概念,但是真的很适合放在整理的领域,想想看为啥坐标系要弄成垂直的?比如我见过有人弄一个图片文件夹,弄一个相片文件夹,但是相片也有放图片文件夹里的。其实整理的过程就是给你的资源空间寻找一个多维正交系的过程…说人话就是,各个文件夹需要做到内容领域最大程度上的不相关3、广度与深度广度可以广一点,深度不要太深,想想树的搜索…4、最重要的,良好的习惯比如说,所有的下载工具指向一个下载目录(下载目录是整理的重灾区吧?),下完以后顺手丢到分类目录去【PART2 搜索与快速访问】我们到底为了什么去整理文件?对于大部分人来说,恐怕主要是查找方便?但是如果只是为了查找,完全没有必要去做特别深度的整理,用俩神器就可以了:神器1:Everything,最快的文件搜索工具,谁用谁知道——刚看了下 很多答案也提到了,我上个地址吧。神器2:ALTRun,快速启动工具,建立自己常见文件夹的链接基本一键打开,毕竟有时候按照整理的逻辑来说,某些常用的文件夹可能在比较深层的地方。不太确定官网是哪一个了,上个小众的地址 用这俩软件的话,只要你的文件夹/文件的命名比较有信息量就足够了。【PART3 媒体库】上面说的基本是针对文件名、文件组织架构进行的整理。对于媒体文件这种信息量在文件名很难反映完全的文件来说,用一些媒体库功能比较强大的软件就好——也就是按照文件内容进行归类整理,这类软件一般都有rating、标签等功能。音乐方面特别推荐Foobar2000,当然这又要求你mp3的id3tag是全的,这好像又变成上面说的文件名的问题了…对id3tag不全的文件可以用网易云去补全。不过我自己用的是相片的整理我没什么需求,不过肯定也有很多内建媒体库的工具的,比如以前听说picasa的人脸识别很强大,完全可以按照被拍的人进行分类。文档的整理,其他答案也有人说过了,建议不要用文件的方式进行整理,完全可以用各类笔记软件,有人提到evernote,我个人推荐wiz 【PART4 松鼠病治疗指南】以上是对正常人的回答,但是世界上还有一种人叫松鼠病,一般松鼠病还伴随强迫症,我觉得关注这个问题的人为数不少是这样的吧?对于这种人的回答是:该删就要删,硬盘现在几个T的都很便宜了,导致很多人松鼠病越发严重了,都是浮云,真的,当你硬盘坏了一次然后伤心几天然后就发现好像也没啥大不了的。我的硬盘坏的那次我就大彻大悟了简直要成佛了,万物皆空啊,想想看你收藏的东西有多少年没看过了?我有个朋友在09年就收藏了20T左右的动画了,各种整理归类出花了都,有一天他突然对我说,某某啊,我算了下,我现在每个月资源增量XG,每个月能看YG,按照这个速度,我一辈子都看不完这些资源了,那一刻我在他身后看到了佛祖的身影。
曾经也以为可以通过"整理"来保持电脑里文件的整洁性,后来终于崩溃了。我的建议是,把文件的名称命成跟文件内容非常相关的名字,具体视情况而定,比如有些可以加上日期,有些可以加上参与人,有些是文件标题,各种。。。。然后,上神器everything!从来没有找不到的文件。
分区分大类,然后再分小类,也算有强迫症吧。我会将未分类文件暂时放到未分类里,过一段时间整理一次。很久前的分类,现在不同了。不过很多没看.........很久前的分类,现在不同了。不过很多没看.........
已有帐号?
无法登录?
社交帐号登录leizhimin 的BLOG
用户名:leizhimin
文章数:722
评论数:2691
注册日期:
阅读量:5863
阅读量:12276
阅读量:346435
阅读量:1046331
51CTO推荐博文
Java相对路径读取文件
不管你是新手还是老鸟,在程序中读取资源文件总会遇到一些找不到文件的问题,这与Java底层的实现有关,不能算bug,只要方法得当,问题还是可以解决的。
项目的文件夹结构:
repathtest ├─src │&&&&└─com │&&&&&&&&&&&&└─lavasoft │&&&&&&&&&&&&&&&&&&&&├─test │&&&&&&&&&&&&&&&&&&&&└─res ├─doc
650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)' src="/sun.jpg" alt="" width="543" height="461" />
1、在Java开发工具的project中使用相对路径
在project中,相对路径的根目录是project的根文件夹,在此就是repathtest文件夹了。
创建文件的写法是:
File f = new File("src/com/lavasoft/res/a.txt");
File f = new File("doc/b.txt");
路径不以“/”开头;
脱离了IDE环境,这个写法就是错误的,也并非每个IDE都如此,但我见到的都是这样的。
2、通过CLASSPATH读取包内文件
读取包内文件,使用的路径一定是相对的classpath路径,比如a,位于包内,此时可以创建读取a的字节流:
InputStream in = ReadFile.class.getResourceAsStream("/com/lavasoft/res/a.txt");
有了字节流,就能读取到文件内容了。
这里必须以“/”开头;
3、看看完整的测试代码
package com.lavasoft. import java.io.*; /** * Java读取相对路径的文件 * * @author leizhimin
10:59:43 */ public class ReadFile { &&&&&&&&public static void main(String[] args) { &&&&&&&&&&&&&&&&readTextA_ByClassPath(); &&&&&&&&&&&&&&&&readTextA_ByProjectRelativePath(); &&&&&&&&&&&&&&&&readTextB_ByProjectRelativePath(); &&&&&&&&} &&&&&&&&/** &&&&&&&& * 通过工程相对路径读取(包内)文件,注意不以“/”开头 &&&&&&&& */ &&&&&&&&public static void readTextA_ByProjectRelativePath() { &&&&&&&&&&&&&&&&System.out.println("-----------------readTextA_ByProjectRelativePath---------------------"); &&&&&&&&&&&&&&&&File f = new File("src/com/lavasoft/res/a.txt"); &&&&&&&&&&&&&&&&String a = file2String(f, "GBK"); &&&&&&&&&&&&&&&&System.out.println(a); &&&&&&&&} &&&&&&&&/** &&&&&&&& * 通过工程相对路径读取(包外)文件,注意不以“/”开头 &&&&&&&& */ &&&&&&&&public static void readTextB_ByProjectRelativePath() { &&&&&&&&&&&&&&&&System.out.println("-----------------readTextB_ByProjectRelativePath---------------------"); &&&&&&&&&&&&&&&&File f = new File("doc/b.txt"); &&&&&&&&&&&&&&&&String b = file2String(f, "GBK"); &&&&&&&&&&&&&&&&System.out.println(b); &&&&&&&&} &&&&&&&&/** &&&&&&&& * 通过CLASSPATH读取包内文件,注意以“/”开头 &&&&&&&& */ &&&&&&&&public static void readTextA_ByClassPath() { &&&&&&&&&&&&&&&&System.out.println("-----------------readTextA_ByClassPath---------------------"); &&&&&&&&&&&&&&&&InputStream in = ReadFile.class.getResourceAsStream("/com/lavasoft/res/a.txt"); &&&&&&&&&&&&&&&&String a = stream2String(in, "GBK"); &&&&&&&&&&&&&&&&System.out.println(a); &&&&&&&&} &&&&&&&&/** &&&&&&&& * 文件转换为字符串 &&&&&&&& * &&&&&&&& * @param f&&&&&&&&&&&& 文件 &&&&&&&& * @param charset 文件的字符集 &&&&&&&& * @return 文件内容 &&&&&&&& */ &&&&&&&&public static String file2String(File f, String charset) { &&&&&&&&&&&&&&&&String result = null; &&&&&&&&&&&&&&&&try { &&&&&&&&&&&&&&&&&&&&&&&&result = stream2String(new FileInputStream(f), charset); &&&&&&&&&&&&&&&&} catch (FileNotFoundException e) { &&&&&&&&&&&&&&&&&&&&&&&&e.printStackTrace(); &&&&&&&&&&&&&&&&} &&&&&&&&&&&&&&&&return &&&&&&&&} &&&&&&&&/** &&&&&&&& * 文件转换为字符串 &&&&&&&& * &&&&&&&& * @param in&&&&&&&&&&&&字节流 &&&&&&&& * @param charset 文件的字符集 &&&&&&&& * @return 文件内容 &&&&&&&& */ &&&&&&&&public static String stream2String(InputStream in, String charset) { &&&&&&&&&&&&&&&&StringBuffer sb = new StringBuffer(); &&&&&&&&&&&&&&&&try { &&&&&&&&&&&&&&&&&&&&&&&&Reader r = new InputStreamReader(in, charset); &&&&&&&&&&&&&&&&&&&&&&&&int length = 0; &&&&&&&&&&&&&&&&&&&&&&&&for (char[] c = new char[1024]; (length = r.read(c)) != -1;) { &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&sb.append(c, 0, length); &&&&&&&&&&&&&&&&&&&&&&&&} &&&&&&&&&&&&&&&&&&&&&&&&r.close(); &&&&&&&&&&&&&&&&} catch (UnsupportedEncodingException e) { &&&&&&&&&&&&&&&&&&&&&&&&e.printStackTrace(); &&&&&&&&&&&&&&&&} catch (FileNotFoundException e) { &&&&&&&&&&&&&&&&&&&&&&&&e.printStackTrace(); &&&&&&&&&&&&&&&&} catch (IOException e) { &&&&&&&&&&&&&&&&&&&&&&&&e.printStackTrace(); &&&&&&&&&&&&&&&&} &&&&&&&&&&&&&&&&return sb.toString(); &&&&&&&&} }
(代码写得粗糙,异常没做认真处理)
运行结果:
-----------------readTextA_ByClassPath--------------------- aaaaaaaaa sssssssss -----------------readTextA_ByProjectRelativePath--------------------- aaaaaaaaa sssssssss -----------------readTextB_ByProjectRelativePath--------------------- bbbbbbbbbbb Process finished with exit code 0
这是通过IDEA开发工具运行的,结果没问题,如果换成控制台执行,那么使用了项目相对路径的读取方式会失败,原因是,此时已经脱离了项目的开发环境,-----这个问题常常困扰着一些菜鸟,代码在开发工具好好的,发布后执行就失败了!
下面我截个图:
650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)' alt="" src="/attachment/205734.png" border="0" />
5、获取CLASSPATH下文件的绝对路径
当使用相对路径写入文件时候,就需要用到绝对路径。下面是个例子:
package com. import java.io.F /** * CLASSPATH文件的绝对路径获取测试 * * @author leizhimin
9:33:02 */ public class Test { &&&&&&&&//classpath的文件路径 &&&&&&&&private static String cp = "/com/lavasoft/cfg/syscfg.properties"; &&&&&&&&public static void main(String[] args) { &&&&&&&&&&&&&&&&//当前类的绝对路径 &&&&&&&&&&&&&&&&System.out.println(Test.class.getResource("/").getFile()); &&&&&&&&&&&&&&&&//指定CLASSPATH文件的绝对路径 &&&&&&&&&&&&&&&&System.out.println(Test.class.getResource(cp).getFile()); &&&&&&&&&&&&&&&&//指定CLASSPATH文件的绝对路径 &&&&&&&&&&&&&&&&File f = new File(Test.class.getResource(cp).getFile()); &&&&&&&&&&&&&&&&System.out.println(f.getPath()); &&&&&&&&} }
/D:/projects/bbt/code/cdn/planrpt/out/production/planrpt/ /D:/projects/bbt/code/cdn/planrpt/out/production/planrpt/com/lavasoft/cfg/syscfg.properties D:\projects\bbt\code\cdn\planrpt\out\production\planrpt\com\lavasoft\cfg\syscfg.properties Process finished with exit code 0
使用工程相对路径是靠不住的。
使用CLASSPATH路径是可靠的。
对于程序要读取的文件,尽可能放到CLASSPATH下,这样就能保证在开发和发布时候均正常读取。
-----------------------
推荐资源:
本文出自 “” 博客,请务必保留此出处
了这篇文章
附件下载:  
类别:┆阅读(0)┆评论(0)
13:45:53 21:45:04 10:38:33 12:25:30 17:00:03 18:20:28 18:20:47 00:33:34 16:58:28
请输入验证码:

我要回帖

更多关于 实现路径 的文章

 

随机推荐