• opendir
  1. 找到对应的目录
  2. 将目录中所有文件全部读入到内存(包含子文件夹下的所有文件)
  3. 将目录指针指向第一个文件
  • readdir
  1. 读取当前指针所指向的文件的文件名 
  2. 2.将目录指针向下移动一位
  • chdir
  1. 改变当前操作目录,代表进入到目标目录

$masterdir = "C:\\Program Files";
function openmydirs($masterdir)
{
if (is_dir($masterdir))
{
$o = opendir($masterdir);
while($saiwa = readdir($o))
{
if ($saiwa=="." or $saiwa=="..")
{
continue;
}
$wholepath = $masterdir."\\".$saiwa;
       //这行代码如此重要,因为我们必须拼接出一个完整的路径,才能在下面调用is_dir,chdir等和目录操作有关的函数if(count($myarray)==3)
{
echo substr($myarray[2],0,2).":"."\n";
} if (is_dir($wholepath))
{
chdir($wholepath);
openmydirs($wholepath);
}
echo $wholepath."\n";
}
}
}
<?php
/**
* Created by PhpStorm.
* User: Administrator
* Date: 2018/12/19 0019
* Time: 上午 1:22
*/
$masterdir = "D:\\2,PHP高级核心";
echo strpos($masterdir,"\\",3)."\n";
$storepath = "E:\\mycourse.txt";
$fetarray = array();
function openmydirs($masterdir,$handle)
{
global $fetarray;
if (is_dir($masterdir))
{
$o = opendir($masterdir);
while($saiwa = readdir($o))
{
if ($saiwa=="." or $saiwa=="..")
{
continue;
}
$wholepath = $masterdir."\\".$saiwa;
$myarray = explode("\\",$wholepath);
if(count($myarray)==3)
{
fwrite($handle,substr($myarray[2],0,2).":"."\r\n") ;
} if (is_dir($wholepath))
{
chdir($wholepath);
openmydirs($wholepath,$handle);
}
if (is_file($wholepath))
{
if(strrpos($wholepath,".wmv")>0)
{
fwrite($handle,substr($wholepath,strrpos($wholepath,"\\")+1,strrpos($wholepath,".wmv"))."\r\n") ;
} }
//echo $wholepath."\n";
}
}
}
//$myarray=openmydirs($masterdir);
$handle = fopen($storepath,'a');
openmydirs($masterdir,$handle);
fclose($handle);
?>

php目录函数操作,以及使用递归的更多相关文章

  1. Linux下文件及目录的一些操作(附递归遍历目录源码)

    1.获取当前工作目录 #include <unistd.h> 1.char *getcwd(char *buf,size_t size); 2. 3.其中,buf为缓冲区地址,size为给 ...

  2. linux 文件名称前后缀操作函数----取目录函数dir、取文件名称函数notdir、取后缀函数suffix、取前缀basename、加后缀函数addsuffix、加前缀addprefix、连接函数join

    1.1       文件名操作函数 下面我们要介绍的函数主要是处理文件名的.每个函数的参数字符串都会被当做一个或是一系列的文件名来对待. 1.1.1        取目录函数dir $(dir < ...

  3. Objective-C:Objective-C:文件中一些对目录进行操作的函数

    IO文件中,一些对目录进行操作的函数:获取.切分.组合 一些对目录进行操作的函数: 获取用户的姓名:(NSString*)NSUserName() ;    ———>NSString *Str ...

  4. PHP中目录的操作

    文件的操作:创建文件,删除文件,重命名文件rename(),移动/复制文件,读取,大小(PHP都有内置的函数) 目录的操作:创建目录(有),删除目录,复制目录,统计目录大小,遍历(自己定义函数) 一. ...

  5. 利用目录函数(opendir,readdir,closedir)查找文件个数

    如何知道一个目录下的所有文件个数呢?或许可以用tree来学(zhuang)习(bi)的同时知道文件个数.Linux系统io函数为我们提供了目录操作函数,其中有一个比较重要(实际上有三个,因为它们经常配 ...

  6. C语言中关于对目录的操作

    原文地址:C语言中关于对目录的操作 目录的操作不论是在嵌入式产品还是应用软件编程都是必不可少的,不同的开发语言可能略有不同,笔者主要是讨论在Linux平台下对目录的一系列操作: 1.获取当前目录操作: ...

  7. path类和directory类对文件的路径或目录进行操作

    Path: 对文件或目录的路径进行操作(很方便)[只是对字符串的操作] 1.目录和文件操作的命名控件System.IO    2.string Path.ChangeExtension(string ...

  8. linux指令(目录类操作指令)

    pwd 显示当前所在的工作目录 cd 目标目录    例如cd  /boot/grub 从当前目录切换到某个目录 cd  切换到根目录 cd.. 切换到当前目录的上层目录 ls  显示当前目录下的内容 ...

  9. php目录函数

    1.创建 mkdir()mkdir(目录地址,权限模式,是否递归创建)默认不支持递归创建,用第三个参数true表示递归创建 <?php header("content-type:tex ...

随机推荐

  1. 【DVWA】File Inclusion(文件包含漏洞)通关教程

    日期:2019-07-28 20:58:29 更新: 作者:Bay0net 介绍: 0x01. 漏洞介绍 文件包含时,不管包含的文件是什么类型,都会优先尝试当作 php 文件执行. 如果文件内容有 p ...

  2. VirtualBox-5.2.8-121009-Win,虚拟机指令ifconfig不显示ip解决方法

  3. activiti随笔记录

    核心组件介绍 关键对象 1.      Deployment:流程部署对象,部署一个流程时创建. 2.      ProcessDefinitions:流程定义,部署成功后自动创建. 3.       ...

  4. Nginx Server 上80,443端口。http,https共存

    server{ listen 80; listen 443 ssl; server_name www.iamle.com; index index.html index.htm index.php; ...

  5. Lombok的用法

    Lombok是一款Java开发插件,使得Java开发者可以通过其定义的一些注解来消除业务工程中冗长和繁琐的代码,尤其对于简单的Java模型对象(POJO).在开发环境中使用Lombok插件后,Java ...

  6. Libra的思考

    这几年关注了很多的新技术,近期让我觉得值得一讲的是blockchain,刚巧6.18号就发布了Libra 他是这么介绍自己的 libra https://developers.libra.org/bl ...

  7. (转)Maven的pom.xml文件配置使用

    转载:http://www.cnblogs.com/GarfieldTom/p/3707160.html <project xmlns="http://maven.apache.org ...

  8. 升级tableau版本

    下载地址: https://www.tableau.com/zh-cn/support/releases 2018以后的版本升级:https://help.tableau.com/current/se ...

  9. numpy数组转置与轴变换

    numpy数组转置与轴变换 矩阵的转置 >>> import numpy as np >>> arr=np.arange(15).reshape((3,5)) &g ...

  10. 【提高组NOIP2008】双栈排序 (twostack.pas/c/cpp)

    [题目描述] Tom最近在研究一个有趣的排序问题.如图所示,通过2个栈S1和S2,Tom希望借助以下4种操作实现将输入序列升序排序. 操作a 如果输入序列不为空,将第一个元素压入栈S1 操作b 如果栈 ...