00:00
那file类里边的这些方法呢,咱们就讲完了,哎,讲完以后的话呢,这个后续大家就试着去用一用,但是怎么证明你这个用的稍微比较熟悉了呢,我们这儿呢,有几道小的题目啊,小的题目啊,我们过一下第一个说呢,利用file的构造器呢,你去用一个文件目录。在其中创建多个文件或目录。这个会不。比如说我现在呢,让你做这样的一个题目,我在这个下边新建一个包啊,EX1212122。我的一个DEMO吧。嗯,行,我现在写个什么事呢?嗯,我现在呢,就是有一个文件哈,File等于new一个file。
01:03
那个file,嗯,这个file的话呢,咱们指定一个吧,在这个I一下,我在这个位置呢,不妨我去创建一个就叫做hello了。这个事啊,那咱们呢,把这个路径对应的这个文件呢,指明出来啊,Al enter指明一下这个啊。好在这个下边呢,我写一个叫hello.txt。行没有问题,现在呢,我想做什么事呢?我希望呢,你啊说呢,创建一个创建一个与咱们这个。啊,这个同目录下的。哎,同目录下的啊,另外一个文件,哎,然后文件名为。文件名。啊为啊这个呢,你起个名,比如我们叫叫哈哈吧,点T这样。
02:04
会做吗?啊,Fair fair1吧,或者你要这个目标的desk fair等于new一个fair,我呢,获取一下你这个file.get一个parent。是吧,获取它的上层,然后呢叫哈哈这样此时呢,只是内存层面的。然后呢,你这个代点啊,去做一个create new file。哎,这就创建了有异常,呃,暂时呢,我们就先抛一下了啊,哎,这个呢,你也可以给他,哎这样一下,然后呢衣服啊。这让你写个叫创建成功,就这样呗,来执行看看。诶创建成功,然后回到我们这块呢,看一下还确实呢,就在了。呃,就这样的一个简单的一个小操作啊,嗯,然后这块呢,他说的是呃,让你造一个文件目录,在这个目录下你去创建多个文件或目录,呃也类似这块,你就呃使用你当前这个文件目录的一个直接它的一个file在下边你去造就完了呗,呃带后缀的这种文件不带的就是文件目录啊过了啊,下边呢是删除啊,这个也比较简单,看一下下边这两个题。
03:25
说呢,判断指定目录下是否有后缀名为点GBG的文件,如果有就输出。就使用咱们刚才讲过的这些方法,看看能做不。指定目录下,咱们是不是讲过一个方法叫做list方法,或者你要用list file也行,咱这呢可以用list让他返回,是不是string类型的整体的这个数组啊,就是你下边这个下一层的文件目录,或者文件的所有的名字就放在这儿了,然后你就放循环一下,看看谁里边是string,我们调它的一个叫ends with吧,咱们不是前面讲过吗?
04:13
哎,看看这个是不是点JPG是是输出一下,你这个string不就是名字吗。OK是吧,嗯,那下边。下边这个呢,就稍微有点难度了。说呢,遍历指定目录下所有的文件名称,包括子文件目录中的文件。所有文件的名称,文件目录呢,就不要了啊。那就意味着比如说这个咱们随便说个事儿,就比如说咱们这个文件目录啊,这个文件目录你打开啊,这是一个文件,好把它输出,然后呢,这里边儿随便去打开,这不行,然后再打开还是文件不还不行,还打开好这呢都是文件了,把这些文件的名字全输出。那就意味着我这里边儿所有的这个是不是都得考虑便利啊,还有还得再往下走。
05:04
啊,这样子,诶对,大家考虑到递归可以用递归去做。哎,用递归去做就是,呃,其实这块这个代码我就不写了啊,这个呢,就是打开它的一个思维,这个思路你知道呢,我们刚才讲的这个方法,你感觉呢,说哎挺无聊的啊,但是突然呢,上题了,发现又不会,还得看前面讲的那些是吧?哎,就是呢,让你简单的去通过咱们讲这个方法呢,完成一些功能,你看你能不能做得到啊,这个代码呢,咱们练习咱们就不写了,给大家呢,其实诶写好了啊,就在这儿把这两个呢,CTRLC咱们拿过来呢看一下啊。嗯,上边这个,呃,这个啊,就是找这个JPG结尾的这个文件,这呢我写了三种方法,你可以看一看,然后下边这个呢,就是叫list files啊,咱们呢,首先要打印出指定目录下所有的文件名称啊,这个呢,确实是用的递归啊,当然是其中的一种方法了,递归我这儿呢,把这个放过来,哎,先这么着一下,这么着一下的话呢,我们先列举出来,你当这肯定是个文件目录了啊,这你要的文件就没啥意思了,这个目录呢,先列举出来它下面的这些呃文件构成的file,然后呢,我通过循环判断一下你这里边的每一个file,它到底是个目录还是一个文件,文件呢就输出啊,目录的话呢,再去调它。
06:26
地贵了。哎,这就搞定,代码量其实不大啊,递归的话呢,我们说可以实现循环,那你要不用递归,那就用循环自己写呗,哎,这样是吧,就过了啊,那么还有这个额外的需求,就是说让你计算一下,你不是都能便利吗?啊,那你便利一下以后,你计算一下你这里边所有的这个呃,文件啊,加在一起啊,你这个目录到底是占了多少内存空间啊,不是内存了啊,磁盘空间咱们不是讲了其中这个file啊,File是不是可以调那个叫LS啊,这个注意咱们file去调lengths,这个你要是个是个文件啊,文件目录的话,你调LAS不靠谱啊,只有到这个文件层面调这个LAS才行。
07:15
那就意味着你得把你便利的那些所有文件都得记录一下他们的长度,然后呢,定一个变量是不是都累加起来诶才行,呃,相当于在这个基础上的一个拓展啊,再拓展一个说呢,删除指定文件目录及其下的所有文件。啊,这是一个删除删除,咱们刚才在讲这个file这块的时候呢,这不是最后说的这个删除,删除这块呢,我光说了这个文件目录这个创建,没有说文件目录的删除啊,你看这个删的时候啊,我这呢举个例子,File我这写个三又一个。这个位置,哎,那我不妨呢拿这块来说I4是吧,哎CTRLC我现在呢,要把这个I4呢给它删掉,这块呢我就呃直接这样啊f file3点我去做一个delete啊,同时呢,到底删没删成,我们就看这个出和false就可以了。
08:17
这时候能删成吧。能上吗?你这时候存在啊,L4确实存在,这不就删掉了。啊,OK的,没问题啊,嗯,但这时候你要注意一个点,就是要想删除成功,这个你IO4里边啊,是不能放东西的啊,要想删除成功啊,我们这个呢,就是IO4啊,这个文件目录下啊说不能啊有子目录。啊或文件啊啊,那这呢,我们删它呢,删成了,那咱们再换一个例子。
09:02
嗯,这个我就直接在这写吧,这个FILE3我再重新去扭一下,哎,这个时候呢,我换了,我换成了咱们这个叫IOIO,我想把IO这个目录删了,显然它下边是有文件和文件目录的。还看看能不能给他干掉啊。来执行。看false相当于就没有成功,看一看确实删不掉。那也就是说呢,如果大家呢,你想删一个文件目录,比如这个IO啊,你要是在Windows下呢,咱们就图形化界面啊,你点一下删除就干掉了啊说呢也挺轻松的,但是这个点一下删除不相当于咱们这里边只是简单做了一个delete啊,因为他要想delete的成功的前提是里边没有东西,那现在呢,我们需要完成个功能,就是你得把这个目录下的所有的,呃,把这个目录呢给删掉,那其实呢,你是不是还得去遍历一下。
10:00
一直编列到最里边,然后从里边开始一点点的往外删。哎,得这么着去做,哎,那么拓展一拓展二,还有这道问题,这个答案的话呢,我都给你写到这儿了,哎这个呢,就不上课我们去讲这个事儿了啊大家呢,有兴趣的话呢,你下来看一看啊,你看你自己写的话呢,能不能搞得定啊,诶里边用到的方法都是咱们,诶刚才呢讲到的这些方法,行这就过了,哎咱们再过来的时候呢,就开始讲下边这个具体的这个IO流了,就啊。
我来说两句