• 【代码学习】文件系统处理


    一、概述

    --------------------------------------------------------------------------------------------

    1、文件类型

      在windows系统下分为3种类型:file、dir、unknow

      在UNIX系统下分为7种类型:block、char、dir、fifo、file、link和unknow

      

    1 <?php
    2 //获取在Linux系统下的文件类型
    3 echo filetype('/etc/');
    4 echo filetype('/etc/passwd');
    5 //获取Window系统下文件类型
    6 echo filetype('C:Windows');
    7 echo filetype('C:WindowsWin.ini');
    8 ?>

    2、文件属性

     1 filetype()  --获取文件类型
     2 is_dir()  --判断给定文件是否是一个目录
     3     语法结构:bool is dir
     4     返回类型:如果文件名存在并且是一个目录则返回true,否则返回false
     5 is_executable() --判断给定文件是否可执行
     6     语法结构:bool is executable
     7     返回类型:如果文件存在且可执行则返回true,否则返回false
     8 is_file()  --判断给定文件是否为一个正常文件
     9     语法结构:bool is file
    10     返回类型:如果文件存在且为正常的文件则返回true
    11 is_link()  --判断给定文件是否是一个符号链接
    12     语法结构:bool is link
    13     返回类型:如果文件存在并且是一个符号链接则返回true
    14 is_readable()  --判断给定文件是否可读
    15 is_writeable()  --判断指定文件是否可写
    16 file_exists()  --检查文件或目录是否存在
    17 filesize()  --获取文件大小(不能获取目录大小)
    18 filectime()  --获取文件的创建时间
    19 filemtime()  --获取文件的修改时间
    20 fileatime()  --获取文件的访问时间
    21 stat()       --获取文件大部分属性

    二、目录的基本操作

    --------------------------------------------------------------------------------------------

    1、解析目录路径

      Windows系统:D:/a/b/c.php 或 D:ac.php

      Linux或UNIX系统:/a/b/c.php

    2、路径相关的函数

      (1)basename("url地址"[,去除部分])

        返回路径中文件名部分

      

    1 <?php
    2 //包含指向文件路径的字符串
    3 $path = "/www/php/test.php";
    4 echo basename($path);         //输出test.php
    5 echo basename($path,'php');   //输出test.
    6 ?>

      (2)dirname("url地址")

        返回目录名部分

    1 <?php
    2 //包含指向文件路径的字符串
    3 $path = "/www/php/test.php";
    4 echo dirname($path);         //输出 /www/php
    5 ?>

      (3)pathinfo(文件路径[,需要的下标])

        获取文件路径的详细信息,返回一个关联数组

    1 <?php
    2 //包含指向文件路径的字符串
    3 $path = "/www/php/test.php";
    4 $path_parts = pathinfo($path);    //返回指定路径中的基本名,目录名和扩展名
    5 echo $path_parts['basename'];     //输出test.php
    6 echo $path_parts['dirname'];      //输出/www/php/
    7 echo $path_parts['extension'];    //输出php
    8 ?>

    3、遍历目录

     1 <?php
     2 //打开目录资源
     3 $dir = opendir('phpMyAdmin');
     4 //读取目录
     5 while($filename = readdir($dir)){
     6     //禁止操作.和..
     7     if($filename != '.' && $filename != '..'){
     8         //读取phpMyAdmin下的文件
     9         $filename = './phpMyAdmin/' .$filename;
    10         //读取目录和文件
    11         if(is_dir($filename)){
    12             echo '目录' .$filename .'<br>';
    13         }else{
    14             echo '文件' .$filename . '<br>';
    15         }
    16     }
    17 }
    18 //关闭目录资源
    19 closedir($dir);
    20 ?>

    4、统计空间大小

    1 disk_free_space()   --统计可用空间大小
    2 disk_total_space()  --统计共用磁盘大小

    5、建立和删除目录

      (1)建立目录

        每个目录下都具有 可读、可写、可操作三个权限。用数字代表三个权限可表示 可读 ->4,可写 ->2,可操作 ->1。

        mkdir("目录名",权限)    权限需要八进制,所以要以0开头

    1 <?php
    2 mkdir("dir0");        //默认权限
    3 mkdir("dir1",0644);   //dir1目录下的文件有可读可写权限,同组用户有读的权限,其他用户哟读的权限
    4 ?>

      (2)删除目录

    rmdir()  -- 删除一个目录(只支持删除空目录)
    unlink() -- 删除一个文件
     1 <?php
     2 function deldir($dirname){
     3     //判断是否存在文件或者文件夹
     4     if(file_exists($dirname)){
     5         echo "文件夹不存在";
     6     }
     7     //判断是否是一个文件
     8     if(is_file($dirname)){
     9         unlink($dirname);
    10     }
    11     //打开目录
    12     $dir = opendir($dirname);
    13     //读取目录
    14     while($filename = readdir($dir)){
    15         //排除文件夹中.和..
    16         if($filename != "." && $filename != ".."){
    17             //读取文件下所有文件
    18             $filename = $dirname . '/' .$filename;
    19             //判断是否为一个文件夹
    20             if(is_dir($filename)){
    21                 //调用deldir函数
    22                 deldir($filename);
    23             }else{
    24                 unlink($filename);
    25             }
    26         }
    27     }
    28     //关闭目录
    29     closedir($dir);
    30     //删除目录
    31     rmdir($dirname);
    32 }
    33 deldir('wjxtgl');
    34 ?>

    6、复制文件及目录

    1 copy("复制的文件","复制文件的位置")
  • 相关阅读:
    redis整合springboot
    安装k8s
    线程池工具类几种实现
    数据库mysql注意点及sql优化
    五年规划
    在 Ubuntu 16.04 安装ROS Kinetic 教程
    谈谈form-data请求格式 js
    C# Body为form-data file文件上传至第三方接口 http请求
    .net c# 使用form-data方式发起http请求
    使用form-data和raw作为body发起POST请求的区别
  • 原文地址:https://www.cnblogs.com/sqyysec/p/6708626.html
Copyright © 2020-2023  润新知