`
天梯梦
  • 浏览: 13730860 次
  • 性别: Icon_minigender_2
  • 来自: 洛杉矶
社区版块
存档分类
最新评论

遍历文件夹下所有文件,编辑删除

阅读更多

实例1、

 

 

<?php
      /*
       遍历文件夹; 功能:(a)可删除文件 (b)可编辑文本,网页文件 (c)可删除文件夹,前提是该文件夹为空 (d)可建立文件,文件夹,修改文件夹名称;
      */
    
      $path=$DOCUMENT_ROOT;
      $path=str_replace("/","\\",$path);


      // 指定文件夹
      $path=$path."\\";

      

      if($_GET['folder'])
      {
          $path.=$_GET['folder']."\\";
      }

      // 本页面路径,下面传回时将用到;
      $url=$_SERVER['PHP_SELF'];
    
    
     //如果是文件夹,将加上链接;
     function folder($path,$str)
     {
         if(filetype($path.$str)=="dir")
         {
             return "<a href=\"?folder=".$_GET['folder']."\\".$str."\">$str</a>";
         }else{
             return $str;
         }
     }
    
    switch($_GET['action'])
    {
        case "del";
            if($_GET['type']=="file")
            {
                unlink($_GET['path']);                
            }else{
                rmdir($_GET['path']);
            }
            echo "<script type=\"text/javascript\">alert('恭喜,删除成功!');location.href=\"".$url." \";</script>";
            break;

        case "edit";
            if($_GET['type']=="file")
            {
                $file=fopen($_GET['path'],"r");
                while(!feof($file))
                {
                    $result.=fgets($file,9999);
                }
                fclose($file);
                echo '<form name="form1" method="post" action="?action=editsave&path='.$_GET['path'].'&type='.$_GET['type'].'">
                          <table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
                            <tr>
                              <td height="25" bgcolor="#99CC00">>><strong> 编辑文件</strong> > <a href="'.$url.'">返回</a></td>
                            </tr>
                            <tr>
                              <td height="25" align="left" bgcolor="#FFFFCC">->文件名:'.$_GET['path'].'</td>
                            </tr>
                            <tr>
                              <td align="center" bgcolor="#FFFFFF"><textarea name="textarea" cols="135" rows="20">'.$result.'</textarea></td>
                            </tr>
                            <tr>
                              <td align="center" bgcolor="#FFFFFF"><input type="submit" name="Submit" value="提交">
                              <input type="reset" name="Submit2" value="重置"></td>
                            </tr>
                          </table>
                        </form>';
            }else{
                echo '<form name="form1" method="post" action="?action=dir_rename&path='.$_GET['path'].'&type='.$_GET['type'].'">
                      <table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
                        <tr>
                          <td height="25" bgcolor="#99CC00">>><strong> 新建文件</strong> > <a href="'.$url.'">返回</a></td>
                        </tr>
                        <tr>
                          <td height="25" align="left" bgcolor="#FFFFCC">->文件夹更名:
                          <input name="filename" type="text" value="'.$_GET['path'].'" size="50"></td>
                        </tr>
                        <tr>
                          <td align="center" bgcolor="#FFFFFF"><input type="submit" name="Submit" value="提交">
                          <input type="reset" name="Submit2" value="重置"></td>
                        </tr>
                      </table>
                    </form>';
            }
            break;

        case "editsave";
        $file=fopen($_GET['path'],"w");
        fwrite($file,$_POST['textarea']);
        fclose($file);
        echo "<script type=\"text/javascript\">alert('恭喜,编辑成功!');location.href=\"".$url." \";</script>";
        break;

        case "addfile";
        echo '<form name="form1" method="post" action="?action=filesave&path='.$_GET['path'].'">
              <table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
                <tr>
                  <td height="25" bgcolor="#99CC00">>><strong> 新建文件</strong> > <a href="'.$url.'">返回</a></td>
                </tr>
                <tr>
                  <td height="25" align="left" bgcolor="#FFFFCC">->文件名:
                  <input name="filename" type="text" value="'.$_GET['path'].'" size="50"></td>
                </tr>
                <tr>
                  <td align="center" bgcolor="#FFFFFF"><textarea name="textarea" cols="135" rows="20">输入内容
                  </textarea></td>
                </tr>
                <tr>
                  <td align="center" bgcolor="#FFFFFF"><input type="submit" name="Submit" value="提交">
                  <input type="reset" name="Submit2" value="重置"></td>
                </tr>
              </table>
            </form>';
        break;

        case "filesave";

            //包含点则建立文件,否则建立文件夹
            if(strpos($_POST['filename'],"."))
            {
            $file=fopen($_POST['filename'],"w");
            fwrite($file,$_POST['textarea']);
            fclose($file);
            }else{
                // 文件夹若存在则退出,不存在则建立!
                if(file_exists($_POST['filename']))
                {
                    exit;
                    
                }else{
                    mkdir($_POST['filename']);
                }        

            }
        echo "<script type=\"text/javascript\">alert('恭喜,".$_POST['filename']."建立成功!'); location.href=\"".$url."\";</script>";
        break;

        case "dir_rename";
        rename($_GET['path'],$_POST['filename']);
        echo "<script type=\"text/javascript\">alert('恭喜,".$_POST['filename']."改名成功!'); location.href=\"".$url."\";</script>";        
        break;


        default:
          $s=explode("\n",trim(`dir/b/o:gn $path`));
          
    
         echo '<table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
          <tr>
           <td height="25" colspan="4" bgcolor="#99CC00">>><strong> 文件管理</strong> > <a href="?action=addfile&path='.$path.'">建立文件</a> > <a href="'.$url.'">返回</a></td>
          </tr>
          <tr>
           <td height="25" align="center" bgcolor="#FFFFCC">文件/文件夹</td>
           <td align="center" bgcolor="#FFFFCC">文件属性</td>
           <td align="center" bgcolor="#FFFFCC">文件大小</td>
           <td align="center" bgcolor="#FFFFCC">操作</td>
          </tr>';
            foreach($s as $value)
          {
          echo '
          <tr>
           <td height="25" bgcolor="#FFFFFF">'.folder($path,$value).'</td>
           <td align="center" bgcolor="#FFFFFF">'.filetype($path.$value).'</td>
           <td align="right" bgcolor="#FFFFFF">'.round(filesize($path.$value)/1024).'kb</td>
           <td align="center" bgcolor="#FFFFFF"><a href="?action=edit&path='.$path.'\\'.$value.'& type='.filetype($path.$value).'">编辑</a> | <a href="?action=del&path='.$path.'\\'.$value.'&type='.filetype($path.$value).'" onClick="return confirm(\'确定删除->'.$value.'\');">删除</a></td>
          </tr>';
         }
         echo "</table>";
         break;
    }
?>
 

 

 

实例2、

 

<?php
      /*
       遍历文件夹; 功能:(a)可删除文件 (b)可编辑文本,网页文件 (c)可删除文件夹,前提是该文件夹为空 (d)可建立文件,文件夹,修改文件夹名称;
      */
    
      $path=dirname(__FILE__);

      // 指定文件夹
      $path=$path."\\";      

      if($_GET['folder'])
      {
          $path.=$_GET['folder']."\\";
      }

      echo "当前路径:",$path;

      //本页面路径,下面传回时将用到;
      $url=$_SERVER['PHP_SELF'];
    
    
     //如果是文件夹,将加上链接;
     function folder($path,$str)
     {
         if(filetype($path.$str)=="dir")
         {
             return "<a href=\"?folder=".$_GET['folder']."\\".$str."\">$str</a>";
         }else{
             return $str;
         }
     }
    
    switch($_GET['action'])
    {
        case "del";
            if($_GET['type']=="file")
            {
                unlink($_GET['path']);                
            }else{
                rmdir($_GET['path']);
            }
            echo "<script type=\"text/javascript\">alert('恭喜,删除成功!');location.href=\"".$url." \";</script>";
            break;

        case "edit";
            if($_GET['type']=="file")
            {
                $file=fopen($_GET['path'],"r");
                while(!feof($file))
                {
                    $result.=fgets($file,9999);
                }
                fclose($file);
                echo '<form name="form1" method="post" action="?action=editsave&path='.$_GET['path'].'&type='.$_GET['type'].'">
                          <table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
                            <tr>
                              <td height="25" bgcolor="#99CC00">>><strong> 编辑文件</strong> > <a href="'.$url.'">返回</a></td>
                            </tr>
                            <tr>
                              <td height="25" align="left" bgcolor="#FFFFCC">->文件名:'.$_GET['path'].'</td>
                            </tr>
                            <tr>
                              <td align="center" bgcolor="#FFFFFF"><textarea name="textarea" cols="135" rows="20">'.$result.'</textarea></td>
                            </tr>
                            <tr>
                              <td align="center" bgcolor="#FFFFFF"><input type="submit" name="Submit" value="提交">
                              <input type="reset" name="Submit2" value="重置"></td>
                            </tr>
                          </table>
                        </form>';
            }else{
                echo '<form name="form1" method="post" action="?action=dir_rename&path='.$_GET['path'].'&type='.$_GET['type'].'">
                      <table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
                        <tr>
                          <td height="25" bgcolor="#99CC00">>><strong> 新建文件</strong> > <a href="'.$url.'">返回</a></td>
                        </tr>
                        <tr>
                          <td height="25" align="left" bgcolor="#FFFFCC">->文件夹更名:
                          <input name="filename" type="text" value="'.$_GET['path'].'" size="50"></td>
                        </tr>
                        <tr>
                          <td align="center" bgcolor="#FFFFFF"><input type="submit" name="Submit" value="提交">
                          <input type="reset" name="Submit2" value="重置"></td>
                        </tr>
                      </table>
                    </form>';
            }
            break;

        case "editsave";
        $file=fopen($_GET['path'],"w");
        fwrite($file,$_POST['textarea']);
        fclose($file);
        echo "<script type=\"text/javascript\">alert('恭喜,编辑成功!');location.href=\"".$url." \";</script>";
        break;

        case "addfile";
        echo '<form name="form1" method="post" action="?action=filesave&path='.$_GET['path'].'">
              <table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
                <tr>
                  <td height="25" bgcolor="#99CC00">>><strong> 新建文件</strong> > <a href="'.$url.'">返回</a></td>
                </tr>
                <tr>
                  <td height="25" align="left" bgcolor="#FFFFCC">->文件名:
                  <input name="filename" type="text" value="'.$_GET['path'].'" size="50"></td>
                </tr>
                <tr>
                  <td align="center" bgcolor="#FFFFFF"><textarea name="textarea" cols="135" rows="20">输入内容
                  </textarea></td>
                </tr>
                <tr>
                  <td align="center" bgcolor="#FFFFFF"><input type="submit" name="Submit" value="提交">
                  <input type="reset" name="Submit2" value="重置"></td>
                </tr>
              </table>
            </form>';
        break;

        case "filesave";

            //包含点则建立文件,否则建立文件夹
            if(strpos($_POST['filename'],"."))
            {
            $file=fopen($_POST['filename'],"w");
            fwrite($file,$_POST['textarea']);
            fclose($file);
            }else{
                // 文件夹若存在则退出,不存在则建立!
                if(file_exists($_POST['filename']))
                {
                    exit;
                    
                }else{
                    mkdir($_POST['filename']);
                }        

            }
        echo "<script type=\"text/javascript\">alert('恭喜,".$_POST['filename']."建立成功!'); location.href=\"".$url."\";</script>";
        break;

        case "dir_rename";
        rename($_GET['path'],$_POST['filename']);
        echo "<script type=\"text/javascript\">alert('恭喜,".$_POST['filename']."改名成功!'); location.href=\"".$url."\";</script>";        
        break;


        default:
          /* 此方法可能由于服务器配置无法使用
        $s=explode("\n",trim(`dir/b $path`));*/

        $handle=opendir($path);
        while ($file = readdir($handle)) {
             $s[]=$file;
        }

        closedir($handle);        
    
         echo '<table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
          <tr>
           <td height="25" colspan="4" bgcolor="#99CC00">>><strong> 文件管理</strong> > <a href="?action=addfile&path='.$path.'">建立文件</a> > <a href="'.$url.'">返回</a></td>
          </tr>
          <tr>
           <td height="25" align="center" bgcolor="#FFFFCC">文件/文件夹</td>
           <td align="center" bgcolor="#FFFFCC">文件属性</td>
           <td align="center" bgcolor="#FFFFCC">文件大小</td>
           <td align="center" bgcolor="#FFFFCC">操作</td>
          </tr>';
            foreach($s as $value)
          {
          echo '
          <tr>
           <td height="25" bgcolor="#FFFFFF">'.folder($path,$value).'</td>
           <td align="center" bgcolor="#FFFFFF">'.filetype($path.$value).'</td>
           <td align="right" bgcolor="#FFFFFF">'.round(filesize($path.$value)/1024).'kb</td>
           <td align="center" bgcolor="#FFFFFF"><a href="?action=edit&path='.$path.'\\'.$value.'& type='.filetype($path.$value).'">编辑</a> | <a href="?action=del&path='.$path.'\\'.$value.'&type='.filetype($path.$value).'" onClick="return confirm(\'确定删除->'.$value.'\');">删除</a></td>
          </tr>';
         }
         echo "</table>";
         break;
    }
?>
 

 

 

 

 

php 操作文件夹 (遍历 计算大小)

 

 

分享到:
评论

相关推荐

    遍历指定文件夹下所有文件

    总的来说,遍历指定文件夹下的所有文件是通过Windows API中的`FindFirstFile`和`FindNextFile`函数实现的,这个过程涉及到文件系统操作、错误处理和可能的后续文件编辑。对于程序员来说,理解和熟练掌握这些API是...

    php实现的遍历文件夹下所有文件,编辑删除

    在本文中,我们将会深入探讨使用PHP脚本来实现文件系统中的文件和文件夹的基本操作,包括但不限于遍历文件夹、编辑文本文件、删除文件和文件夹、创建新文件和文件夹、以及修改文件夹名称。这些操作都是文件管理的...

    C# aspose.word 批量替换文件夹下所有word文件里的字符串代码

    // 遍历文件夹下的所有Word文件 foreach (var filePath in Directory.GetFiles(folderPath, "*.docx", SearchOption.AllDirectories)) { try { // 加载Word文档 Document doc = new Document(filePath); //...

    Unity打包发布后正确读取StreamingAssets文件夹下的Html文件DEMO

    本教程将详细讲解如何在Unity打包后读取该文件夹下的Html文件,并结合手机功能实现邮件发送和网页打开。 首先,我们需要了解Unity打包后的路径变化。在Unity编辑器中,我们可以通过Application.streamingAssetsPath...

    汇总指定文件夹内所有工作薄_ExcelVBA_

    3. **遍历文件夹**:使用`Dir`函数来迭代文件夹中的所有Excel文件。例如: ```vba Dim fileName As String fileName = Dir("C:\Your\Path\*.xlsx") ' 替换为实际文件夹路径 While fileName &lt;&gt; "" '...处理每个...

    删除Creo指定文件夹及其子文件夹下的旧版本DrPurge.zip

    "删除Creo指定文件夹及其子文件夹下的旧版本DrPurge.zip"这个标题表明,我们讨论的是一个针对Creo软件的特定功能——DrPurge,用于删除特定文件夹及所有子文件夹中的旧版本文件。DrPurge是Creo的一个实用工具,它的...

    使用Shell遍历目录及其子目录中的所有文件方法

    函数内部使用`for`循环遍历指定目录下的所有文件和子目录。`ls $1`命令用于列出目录中的所有内容。然后,`if [ -d $1"/"$file ]`语句检查当前元素是否为目录,如果满足条件,函数会递归地调用自身来处理子目录;否则...

    (VS2010 C++)删除目录下指定类型或格式的文件demo

    2. 目录遍历:要删除特定目录下的所有文件,首先需要遍历该目录。C++标准库并不直接支持目录操作,但可以借助第三方库如Boost或者自定义实现。在VS2010中,可能使用了Windows API(如`FindFirstFile`, `FindNextFile...

    批量删除指定文件夹下所有WORD文档中的空白行的软件

    批量删除指定文件夹下所有Word文档中的空白行是一项实用的操作,尤其对于那些需要整理大量报告、论文或合同的用户来说。这个软件就是为此目的设计的,它能够帮助用户节省大量手动编辑的时间。 批量处理Word文档的...

    Excel-VBA宏编程实例源代码-搜索指定文件夹中子文件的数量.zip

    4. **循环遍历文件夹结构**:为了统计子文件夹的数量,我们需要递归地遍历文件夹及其子文件夹。这通常通过一个递归函数实现,该函数接收当前文件夹作为参数,然后检查其子文件夹并递归调用自身。 5. **计数器变量**...

    自己重新封装的C# FTP实现上传,下载,创建文件,文件夹,删除单个文件 MD5校验等

    在C#实现中,可以通过递归调用来遍历目录结构,逐个删除文件和子目录。 7. **MD5校验**:MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,用于验证文件的完整性。在FTP操作中,可以在上传或下载文件后...

    Excel-VBA宏编程实例源代码-删除指定文件夹中的text文档.zip

    ' 遍历文件夹中的所有文件 For Each 文件对象 In 文件系统对象.GetFolder(文件夹路径).Files ' 如果文件是.txt文件,则删除 If Right$(文件对象.Name, 4) = ".txt" Then 文件对象.Delete End If Next 文件...

    Windows下删除.svn文件夹的最简易方法

    - 创建一个批处理文件,使用`for /r`循环遍历指定目录及其子目录,然后删除每个找到的`.svn`文件夹。 请注意,删除`.svn`文件夹后,如果你需要重新加入版本控制,需要重新克隆或导出项目。此外,如果项目是团队...

    [工具]实现文件夹和文件名称批量修改

    4. **DEL 命令**:在某些情况下,你可能希望在重命名后删除原文件。可以使用`del`命令来实现。但请注意,这个操作不可逆,一定要谨慎使用。 5. **PAUSE 命令**:在脚本运行过程中,可以插入`pause`命令,让脚本暂停...

    自动建立硬件项目文件夹目录参考

    打开这个文件,我们可以看到由DOS命令构成的代码,例如`mkdir`用于创建目录,`if`语句用于条件判断,以及可能的`for`循环用于遍历和处理文件或目录等。 综上所述,这个压缩包提供了一个实用工具,通过批处理脚本来...

    Excel-VBA宏编程实例源代码-获取文件夹的信息.zip

    5. **遍历文件夹**:通过`Folder.Files`属性,可以遍历文件夹中的所有文件。可以使用For Each循环来逐一处理每个文件,获取文件的名称、大小、修改日期等信息。 6. **Sub和Function**:VBA中的Sub过程用于执行一...

    Excel-VBA宏编程实例源代码-删除相同路径下的文件夹(FileSystemObject).zip

    这通常涉及循环遍历文件夹,获取子文件夹列表,然后对每个子文件夹执行上述删除操作。例如: ```vba Sub RemoveDuplicateFolders(path As String) Dim folder As Folder Dim subfolder As Folder Set folder = ...

    简易文件浏览管理器源码.zip

    简易文件浏览管理器源码打开以后遍历可读的文件夹。内置文本编辑器,可以编辑文本文档,并且保存编辑后的文本信息。可以进行文件的操作有复制、粘贴、新建文件/文件夹、重命名、删除文件或文件夹等功能。但是目前只...

    Excel-VBA宏编程实例源代码-移动文档和文件夹.zip

    例如,你可能会看到如何使用For Each循环遍历文件夹中的所有文件,或者如何使用If语句判断文件是否存在并进行相应的操作。 在实际应用中,这样的VBA宏可以极大地提高工作效率,比如自动备份文件、整理文件夹结构、...

Global site tag (gtag.js) - Google Analytics