首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

PHP递归实现文件夹的复制、删除、查看大小操作示例

本文实例讲述了PHP递归实现文件夹的复制、删除、查看大小操作。分享给大家供大家参考,具体如下: PHP虽然提供了 filesize、copy、unlink 等文件操作的函数,但是没有提供 dirsize、copydir、rmdirs 等文件夹操作的函数(rmdir也只能删除空目录)。所以只能手动编写这些函数,主要的技巧是通过递归将问题逐层分解,直到分解成可以直接解决的最小子问题。 查看文件夹大小 由于文件夹是没有大小的,平常所说的文件夹尺寸准确的说应该是文件夹中所有文件的总大小。所以只需要将文件夹逐层查找,统计每一层所包含的文件大小,最后将结果从最深的文件夹返回合并。

02
您找到你想要的搜索结果了吗?
是的
没有找到

PHP基于迭代实现文件夹复制、删除、查看大小等操作的方法

本文实例讲述了PHP基于迭代实现文件夹复制、删除、查看大小等操作的方法。分享给大家供大家参考,具体如下: 前面一篇 PHP递归实现文件夹的复制、删除、查看大小操作 分析了递归操作使用技巧,这里再来分析一下迭代的操作技巧。 “既然递归能很好的解决,为什么还要用迭代呢”?主要的原因还是效率问题…… 递归的概念是函数调用自身,把一个复杂的问题分解成与其相似的多个子问题来解决,可以极大的减少代码量,使得程序看起来非常优雅。 由于系统要为每次函数调用分配运行空间,并使用压栈予以记录。在函数调用结束后,系统需要释放空间,并弹栈恢复断点。所以递归的消耗还是比较大的。 即使语言设计时已经将函数调用优化的极度完美,达到可以忽略递归造成的资源浪费,但是递归的深度仍然会受到系统栈容量的限制,否则将会抛出 StackOverflowError 错误。 而迭代能很好的利用计算机适合做重复操作的特点,并且从理论上说,所有的递归函数都可以转换为迭代函数,所以尽量能不用递归就不用递归,能用迭代代替就用迭代代替。 查看文件夹大小 迭代的思路是让计算机对一组指令进行重复执行,在每次执行这组指令时,都从变量的原值推出其它的新值……重复这一过程直到达到结束条件或没有新值产生。 由于递归相当于循环加堆栈,所以可以在迭代中使用堆栈来进行递归和迭代的转换。

02

linux 常用命令

1. 切换目录:cd [目录] 2. 查看当前目录文件:ls -a[查看所有文件包括隐藏]/-l[查看文件显示权限和所属] 3. 查看当前所在路径: pwd 4. 复制文件或者文件夹:cp [filename/-r folder] 5. 远程复制文件或者文件夹: – 复制本地到远程: scp [-r] local_path username@ip:path – 复制远程到本地: scp [-r] username@ip:path local_path 6. 移动或重命名文件或文件夹: mv [file/folder] 7. 创建文件夹: mkdir [folder_name]; 8. 变更文件或文件夹权限:chmod [-R:遍历文件夹下所有文件] [权限] [file/folder] – 解释: 例如权限为777 代表 user/group/other 的权限为 4+2+1/4+2+1/4+2+1, 4代表read读权限, 2代表写权限, 1代表执行权限 – drwxr–r–中的第一位: d代表文件夹,s代表socket文件,-代表普通文件,l代表软链 9. 变更文件所属用户或用户组: chown owner:group [file/folder] 10. 新建文件: – touch [filename] – vi/vim [filename] 11. 查看文件: – 输出文件内容:cat [filename] – tail [-f:实时输出文件内容] [filename] – less 12. 查找内容: – grep [正则] – awk 13. 建立软链: ln -s [realpath/filename] [realpath] 14. 查看包含所有用户的进程:ps -aux 15. 查看端口: netstat -anp – a代表:显示所有,默认不显示LISTEN的 – n代表:不显示数字别名 – p代表:显示关联的程序 16. 压缩 – 解压缩:tar -zxvf [filename] – 压缩:tar -zcvf [filename] 17. 查看当前命令所在的路径: which 18. 查看当前用户 – who – whoami 19. 查看当前系统运行多长时间:uptime 20. 可读性好的查看磁盘空间:df -h 21. 可读性好的查看文件空间:du -f –max-depth=[遍历文件夹的深度] [file/folder] 22. debian添加软件源:apt-add-repository [源] 23. 查找文件: – find [path] -name [filename] – find [path] -user [owername] – find [path] -group [groupname] 24. 删除文件或者文件夹: rm [-r] [file/folder] 25. 进程: – 杀掉进程:kill [pid] – 查看进程 * 查看:ps -aux * 查看父进程ID(ppid):ps -ef 26. 关机/重启 – 关机:shutdown -h now – 关机: init 0 – 关机: halt – 关机: poweroff – 重启: shutdown -r now reboot

03

linux局域网传输文件,局域网传输文件详解[通俗易懂]

局域网传输文件详解(转) 相信很多朋友都有过这样的经历,在办公室需要通过局域网传输文件。如果顺利自然不必说了,但有时难免也会遇到“不测”,尤其是直接移动文件,万一失败损失惨重,虽然几率不大但毕竟存在。我们该如何做呢?大家知道,本身的复制功能是不能实现断点续传的,也就是说如果在局域网中复制文件一旦失败,原先复制的文件就要重新复制,这种情况相信大家也曾有过体会,难道在局域网中复制文件还不如在互联网上下载文件那么可靠吗?这不,我们可以通过第三方软件来实现。用FTP服务器和FTP客户端工具实现提到架设FTP服务器,可能大家最先想到的就非“Serv-u”莫属了,Serv-U的功能强大,我们选择它来架设FTP服务器是最适合不过了。当然如果你的系统是2000或XP,你就可以不用这些软件,利用系统集成的IIS就能实现,具体操作不是本文所说的,有兴趣的读者可以自己研究一下。现在首先用Serv-U建立一个FTP服务器。1.启动Serv-U建立一个匿名用户

02
领券