文件管理二三事

 

导言

感觉在电子信息类专业读了一年,本人在计算机方面最大的收获可能不在码力提升了多少,工程思维增长了几多,或者科研内容学会了多少,而是在某个比较简单、但是没学会可能就会惹出麻烦的方面——电脑文件管理——主要就是合理安置文件,不把大量文件扔到桌面上云云,其内容及其细微但又及其丰富,现在再想来,或许叫“数字健康管理”更妥当些吧。同时,我还会添加一些其他趣事,总结我的一些其他经历与经验。

在这篇文章中,我会浅谈一些自己经历过/看到过/听说过的事情,加以场景化虚构,总结成一个个小故事,讲给大家听。

第一篇 · 咦,我的C盘怎么炸了

在上大学之前,我一直没啥文件管理的意识,觉得能把需要的文件下载到电脑上,能查看与编辑,并且要找的时候不至于找不到就完全够了。当时我唯一注意的,就是给自己在桌面上创建了一个名字叫i.sjtu的文件夹,里面装着我的各种个人资料,例如课内、文娱与写作。我把不同的资料分门别类,放到这三个板块下;至于板块里的文件我怎么安排的,管他呢,下次要看的时候能找到就行。

但是在某个夏夜,我突然发现C盘显示条从蓝变红了,而且弹窗也不断弹出“C盘所剩空间不足10%”,我不以为意。但是后来参加了一个比赛,需要在电脑上安装一个软件,这个软件所占内存能占用我C盘剩余空间百分之三十多。我顿时感觉不妙了,所以就上网搜各种方法。借助各种电脑瘦身软件的帮助我全然不敢,用各种奇淫巧计我又怕文件损坏,思来想去还是打算先从我能操控的部分开始,实在不行了再去用那些办法。

我做的第一件事情,就是把i.sjtu迁移到D盘。因为这个文件夹太大了,我当时搬了好久。因而此处提醒各位,C盘剩余内存小的时候,千万不要把重要且后续会加入很多文件的文件夹放在C盘下,否则C盘真的满了的时候,迁移也很困难。

我做的第二件事情,是把一些不重要(不涉及代码等,不装在电脑上对我也没什么损失)的软件卸了,并尝试重装到D盘上——之前,我几乎所有的软件都是按默认路径下的,所以几乎全在C盘上,这挤占了不少空间,而现在我已经学会把软件安装在比较空的盘里了(如果软件的安装路径能自定义的话),这可以尽量防止C盘爆满——在重装了微信和QQ之后,我还尝试把他们的内容储存路径放到D盘下,这也是一个比较有效的操作。在此之后,我还详细查看了微信和QQ的内存储存地址,发现QQ应该是按月份储存记录的。这样,我们就可以定期清理其消息记录,只保留近几个月的,这样也可以防止它占太多内存。

我做的第三件事情,是删回收站中的文件。我之前甚至不知道回收站其实也是C盘里的:tieba_hehe:而且我从来没有定期清理回收站的习惯,总是删了就当它没了,这也导致我后来内存空间不足。但是,我是不敢清空回收站,因而把已有的已删除文件内存从大到小排列,把排名前几且确实不重要的彻底删除——他们可能单个就占了500+MB的内存,然后往后翻,把我觉得不会再用的,以及重复的文件都彻底删除,一些图像也彻底删除,最后找到内存为0的文件,也将其全部删除,让我的回收站看起来不那么累赘。

而第四件事,是查看我“下载”板块中的文件,并把占内存大且不重要的全部彻底删除(在非回收站里,Windows上的彻底删除快捷键为Shift + Delete)。我发现该板块中有很多安装包,最大的安装包占了600+MB的内存。我还删除了一些重复或者无用的文件,并把一些对我有用的东西移动到D盘对应的模块中去了。

第五件事,是仔细点进i.sjtu,并且递归式的进各个文件夹,进行文件的删除与分类(是的,这个时候我已经有分类储存文件的意识了)。我发现某些文件夹可能有好多个GB,但是点进去的子文件夹所占内存悬殊。这往往是因为我在某地储存了大量照片(是的,相机拍的照片真的占内存很多,尤其是一百来张照片并存的时候)。在这个时候,确定这些照片都保存在相机里就可以放心的把这些照片永久删除了。有些时候,部分安装包也占据了不少的空间,把它们都删了也是一个不错的选择。同时,我在各个文件夹里储存的作业也有一些多,其中不少都是直接从我pad上导出的.goodnotes文件,其中甚至有一部分我从没写过笔记,我也选择了部分清理。

此后,我对i.sjtu文件夹上的文件架构进行大清洗,包括但不限于把各类比赛、教材、笔记、Github项目等分门别类的安置好,在笔记等有明显时间范围的内容按照学期分类,这使得我的数据安置井井有条,下次也更容易找到。同时,为了防止我忘记自己把文件转移到了何处,我创建了一个导航文件,记录了我认为重要但是位置变动较大的文件名称、内容以及新位置。并且,我在此之后把几乎所有新需要的软件下到D盘中,从而避免了C盘再次爆炸。

第二篇 · 为什么软件没删干净啊

在入学前,我一直觉得删除了桌面上的快捷方式就删除了一个软件欸。直到我发现了我删了快捷方式的软件依旧留存在电脑上,我才发觉不对劲。于是我去新生群里问了,然后被好心的学长学姐提醒说,我可以在控制面板上删除软件——这才能真正把软件从我的电脑上清除,而桌面上那个往往是快捷键,类似于一个超链接,删除超链接并不会对其指向的东西有所损害。现在回想起来,这真是我的黑历史了吧。

第三篇 · 为什么我的代码跑不了啊

PART 1 · 不带自动检查功能的编译器,我和你爆了

有一天,我回到寝室,发现我的室友在很苦痛的debug. 据她所说,她已经de了一个小时了,但是还是无法修正。于是我粗粗看了一遍代码,然后作进一步调试,最后发现是一个变量名称拼写错误,程序无法识别,且有一个需要输出的字符串少了一个空格,导致字符串长度改变,无法经过输出校验。在此,我十分不推荐想要在自己电脑上运行C++的朋友们使用Code Blocks这个编译器,因为它实在是太老了,而且没有像VSCode一样的自动检查功能,一旦出现变量名拼写错误,就很难发现;而在跑代码的时候de了很久,才发现是这个错误,还是很令人崩溃的。

PART 2 · 我说在VSCode中用文件夹的方式打开目标文件是对的

在大一上学习计算导论这门课的时候,我有一次发现我的代码一直报错,于是就询问助教,他帮我以文件夹的方式打开了这个文件,遂能运行。后来我才明白这是因为用文件夹的方式打开,可以形成一个独立的“工作区”,能识别这个文件夹里的所有代码、配置文件和结构。在多文件项目中,这么做几乎是必要的(蛐蛐:尤其是cpp多文件运行配置失败、只能用命令行运行文件的时候,以文件夹打开文件然后按Ctrl + \,所打开的Terminal直接是在这个文件夹下的,就省去了繁琐的cd folder_name的过程)。

PART 3 · Python库冲突,我们讨厌你

有一次我在做一个AI相关的项目。很不巧的是,我当时完全不懂这一块的内容,几乎是全程摇AI帮我写和修改。更不巧的是,我那个时候还不是很会写提示词,往往描述不清问题内容,也未曾学会用xml格式包裹文本,甚至没怎么意识到AI能读的上下文篇幅是有限的,也没有悟到我其实可以另起一个对话框来让AI以“干净的脑子”帮我分析问题,只会在破防中一次又一次的把报错丢给AI并虔诚的希望它能跑出正确结果,然后被一次又一次错误的输出折磨到近似升天。我还记得我当时用到了两个库,但是它们矛盾。我的AI让我修改了版本,更新了又回退,回退了又更新,我傻傻的期待什么时候它们能兼容,但是这从未出现。后来,我询问了一个在做这方面的朋友,他说这两个库确实是冲突的,最好不要一起用。这提示了我,当两个库反复调整都无法兼容的时候,最好另起一个对话让AI判断它们是不是完全无法兼容;如果如此,就没有必要花更多心血在版本调试上,而是尽早摇AI,用其他的方法去完成这个项目。

PART 4 · 常识的重要性

我大一的时候有一门课叫计算导论,主要内容就是python基本语法,沾一点Linux的使用。这门课有一个期末大作业,是实现一个有二十来个函数的矩阵计算器。本来,完成python代码即可,但是我的队友建议完成一个可视化,把矩阵计算功能在网页上实现。这听起来很有意思,而且如果实现了也是一个很有成就感的事情,所以我当时当即就答应了这件事。

可惜的是,我们当时都完全没有接触过前端,也不太可能在短时间内速通学会。大一的我还十分希望能完美完成各项任务,又没有比较系统的自学意识,所以这件事最后就是我们合力调用AI完成网页的实现。坏消息是,当时的AI还没有现在这么智能,我又看不懂代码,只能每次都要求AI输出完整代码,结果其又臭又长,而且经常会随机遗漏一部分,这让我无比破防。经过n多天的熬大夜,我们终于完成了这个项目,做成了我们的小网站。

如果要说这件事对我的最大启发,可能就是学会了如何调用AI,以及如何干预调AI时的破防心理。在此,我无比建议每一位曾经和AI大战到破防的朋友们去搜索、学习规范的提示词书写,这能大大提升你获得回答的质量(包括但不限于准确性和完整性)。同时,选用一些性能良好的AI有相当大的作用。同时,这个项目也提示了我常识的重要性:当你什么都不会的时候,即使AI给了你修改建议,你可能也不知道要在何处修改你的代码;而当你对这项技能有基本的了解的时候,你往往能看懂AI的回答,并且把它适当的放到你的代码中去,让AI成为你的助手与实现功能的工具,而不是把AI当成是万能的主人,你想到什么它就能做什么(当前的AI还远远没有达到那样的水平)。

第四篇 · 老师要求我以某个格式提交.zip文件,但是我不懂他发的树状图是什么意思

有的时候,老师在作业中会要求我们提交一个.zip文件,并给出规范格式;另一些时候,当我们拿多文件任务询问AI时,AI会指定一个特定的文件结构。它们可能长这样:

project/
├── main.py
├── README.md
├── data
│   ├── input.txt
│   └── output.txt
└── src
    ├── utils.py
    └── core.py

其实最开始几次在AI回答中看到这些奇怪的结构的时候,我不是很懂,并且感到迷惑。不过,自从我学习了虚拟机的一些常用指令之后,我就知道了,上面这种是一个tree,是以树状结构把指定目录及其子目录里的文件打印出来,分叉符号├──└──表示层级关系。知道这个之后,拿含有很多文件的大项目询问AI时我再也不需要用复杂的文字描述文件总体组织架构了,而是直接在这个文件夹下的终端输入tree指令,让电脑自动帮我打印当前文件的结构,这太好用了。

(To be filled…)