StupidBeauty
Read times:765Posted at:Tue Sep 3 22:57:41 2013
- no title specified

进程当前工作路径的利用

在GNU/Linux系统中,进程都有一个叫做 工作路径 的属性。

最简单地说 ,工作路径的作用就是:当妳在自己的程序中以 相对路径 的形式来打开某个文件时,最终所打开的文件的绝对路径就是相对于当前进程的工作路径的 ,例如:进程的当前工作路径是 / home/hxcan ,此时在程序里使用代码打开一个相对路径为 艳照.jpg 的文件,则真正打开的文件其完整路径是 /home/hxcan/艳照.jpg

利用这一点 ,可以在写代码时偷一些懒,例如,妳确定某个文件一定会处于妳的工作路径中时,就可以省掉前面的一砣绝对路径了

另外 ,这个属性有助于妳以比较简单的方法来处理跨平台软件经常遇到的文件路径问题:妳可以在打包安装时将程序所要用到的一些素材文件放置在程主序所在的同一目录中 ,然后在实际的代码中,每当程序启动之后,都将自己的工作路径改为程序自身所在的路径(这是有必要的 ,有些系统的默认工作路径就是程序所在的路径,有些则不是 ,然后就以相对路径来访问这些素材文件。

以上说的都是理论的东西 。下面说一说本座今天是怎么利用这个属性的

之前为了安装 gstm,本座自己编译安装了GTK3,结果就打破了python的GTK3绑定中的某些东西。这导致的结果就是 ,在运行fslint时,无法通过界面上的 “添加”按钮来添加新的待处理路径到路径列表中。

见这个截图

单击图中的 “添加”按钮,像往常一样地能够弹出“目录选择对话框”,并且能够在对话框中选中要处理的目录之后“确定”,但是当“目录选择对话框”“确定”关闭了之后,所选中的路径并没有像正常工作时那样出现在待处理目录列表中。

这就使得本座无法正常使用 fslint了。 fslint是一个文件管理工具,本座主要用它来找到并删除某个目录 下其内容完全相同的文件 。当本座在一些网页上看到一些狠好看地图片时 ,一般都会直接使用DownThemAll下载,文件会自动下载到 /Program/下载 这个目录中 。如果某个网站有一个套图 ,又是分布在不同页面的(那些 下一页 按钮 ,可使用AutoPager来自动翻页 ,本座就会把网站上对应的每一页都翻一遍,然后DownThemAll。这就导致网站上的一些装饰性的图片 (例如网站标志)被下载多次 ,有些时候本座真正感兴趣的图片也会被下载多次的 。于是下载目录中会有大量完全相同的图片 。所以本座会定时地使用 fslint来清理。

这下好了 ,无法把 /Program/下载 这个目录添加到待处理目录列表里去了。本座之前编译 GTK3也费了好多时间, 懒得为了这个事再搞了 ,于是就把这个问题放下了。这样,前几天都是手动来清理相同文件的 ,又慢又不可靠啊。

今天突然颤抖了一下 ,想到了这一点,fslint每次启动都会默认把 /Entertain 放置到待处理目录列表中,这个路径是本座的家目录 ,也就是各个进程的默认工作目录。既然这样,如果本座从 /Program/下载 目录中启动fslint,是不是就会把下载目录默认加到待处理目录列表里勒

抱着电视购物里常说的试试看的心理 ,本座在 /Program/下载 目录中打开 konsole,此时从konsole里启动的进程,其工作目录将会是下载目录了。然后本座执行fslint-gui,果然,启动后的fslint,其待处理目录列表里就是 /Program/下载

又可以像以前那样使用 fslint来清理相同文件了

未知美人

常艳

Your opinions
Your name:Email:Website url:Opinion content:
- no title specified

HxLauncher: Launch Android applications by voice commands

 
Recent comments
2017年4月~2019年4月垃圾短信排行榜Posted at:Thu Sep 26 04:51:48 2024
Qt5.7文档翻译:QWebEngineCookieStore类,QWebEngineCookieStore ClassPosted at:Fri Aug 11 06:50:35 2023盲盒kill -9 18289 Grebe.20230517.211749.552.mp4