如何处理运用某一路径之下文件夹

/*
               #########
              ############
              #############
             ##  ###########
            ###  ###### #####
            ### #######   ####
           ###  ########## ####
          ####  ########### ####
         ####   ###########  #####
        #####   ### ########   #####
       #####   ###   ########   ######
      ######   ###  ###########   ######
     ######   #### ##############  ######
    #######  #####################  ######
    #######  ######################  ######
   #######  ###### #################  ######
   #######  ###### ###### #########   ######
   #######    ##  ######   ######     ######
   #######        ######    #####     #####
    ######        #####     #####     ####
     #####        ####      #####     ###
      #####       ###        ###      #
        ###       ###        ###
         ##       ###        ###
__________#_______####_______####______________

                我们的未来没有BUG
* ==============================================================================
* Filename: Text
* Created:  2016/4/26 11:45
* Author:   HaYaShi WangYuChen
* ==============================================================================
*/
using UnityEngine;
using System.Collections;
using System.IO;
using System;

public class Text : MonoBehaviour {
    /// <summary>
    /// 通过判断获取该父文件夹文件数量或所有子父文件夹文件数量
    /// </summary>
    /// <param name="physicelPath">传入的是物理路径</param>
    /// <param name="isIncludeSubDirectory"></param>
    /// <returns></returns>
    public static int FileCount(string physicelPath, bool isIncludeSubDirectory)
    {
        int count = 0;
        if (isIncludeSubDirectory)
        {
            //该父文件夹文件数量以及所有子文件夹文件数量
            count = Directory.GetFiles(physicelPath, "*.*", SearchOption.AllDirectories).Length;
        }
        else
        {
            //该父文件夹文件数量
            count = Directory.GetFiles(physicelPath, "*.*", SearchOption.TopDirectoryOnly).Length;
        }
        return count;
    }

    /// <summary>
    /// 通过判断获取该父文件夹数量或所有子父文件夹数量
    /// </summary>
    /// <param name="physicelPath">传的是布尔值的参数</param>
    /// <param name="isIncludeSubDirectory"></param>
    /// <returns></returns>
    public static int DirectoryCount(string physicelPath, bool isIncludeSubDirectory)
    {
        int count = 0;
        if (isIncludeSubDirectory)
        {
            //该父文件夹数量以及所有子文件夹数量
            count = Directory.GetDirectories(physicelPath, "*.*", SearchOption.AllDirectories).Length;
        }
        else
        {
            //该父文件夹数量
            count = Directory.GetDirectories(physicelPath, "*.*", SearchOption.TopDirectoryOnly).Length;
        }
        return count;
    }

    /// <summary>
    /// 获取某一目录之下所有文件的大小
    /// </summary>
    /// <param name="physicelPath">文件夹路径</param>
    /// <returns></returns>
    public static long TotalFileSizes(string physicelPath)
    {
        string[] a = Directory.GetFiles(physicelPath, "*.*", SearchOption.AllDirectories);
        //Directory.GetFiles(@"D:\Test", "*.jpg", SearchOption.AllDirectories); //找出该目录(及下级)所有JPG文件
        long b = 0;
        foreach (var item in a)
        {
            FileInfo info = new FileInfo(item);
            b += info.Length;
        }
        return b;
    }

    /// <summary>
    /// 操作文件夹,删除所有空文件夹
    /// </summary>
    /// <param name="physicalpath">物理路径</param>
    public static void RemoveAllEmptyDirectories(string physicalpath)
    {
        //遍历旗下子文件夹
        foreach (var item in Directory.GetDirectories(physicalpath))
        {
            //循环遍历旗下子文件夹
            RemoveAllEmptyDirectories(item);
            //判断文件夹里面文件为空      同时  判断旗下子文件夹里面文件为空
            if (Directory.GetFiles(item).Length == 0 && Directory.GetDirectories(item).Length == 0)
            {
                //删除文件
                Directory.Delete(item, false);
            }
        }
    }
    /// <summary>
    /// 删除某一路径之下所有文件夹下文件
    /// </summary>
    /// <param name="physicalPath">物理路径</param>
    public static void DeleteAllFiles(string physicalPath) {
        DirectoryInfo id = new DirectoryInfo(physicalPath);
        //遍历删除此文件夹下的文件
        foreach (FileInfo item in id.GetFiles())
        {
            item.Delete();
        }
        //遍历子文件夹数组
        foreach (DirectoryInfo item in id.GetDirectories())
        {
            DeleteAllFiles(item.FullName);
        }
    }

    /// <summary>
    ///  删除某一路径之下 days天之内所有文件夹下文件
    /// </summary>
    /// <param name="physicalPath">物理路径</param>
    /// <param name="days">天数</param>
    public static void DeleteAllFilesDays(string physicalPath, int days) {
        int day = -(Math.Abs(days));
        DirectoryInfo id = new DirectoryInfo(physicalPath);
        //遍历删除此文件夹下的文件
        foreach (FileInfo item in id.GetFiles())
        {
            Debug.Log("文件创建时间"+item.CreationTime);
            Debug.Log("前" + days + "天现在时间" + DateTime.Now.AddDays(day));
            //判断文件是否大于前days时间
            if (item.CreationTime>DateTime.Now.AddDays(day))
            {
                item.Delete();
            }
        }
        //遍历子文件夹数组
        foreach (DirectoryInfo item in id.GetDirectories())
        {
            DeleteAllFilesDays(item.FullName,days);
        }
    }
	void Start () {
        //Debug.Log(TotalFileSizes("C:\\Users\\EasyAR\\Desktop\\Text")+":字节");
        //Debug.Log("该父文件夹文件数量以及所有子文件夹文件数量" + FileCount("D:\\hahaha", true));
        //Debug.Log("该父文件夹文件数量" + FileCount("D:\\hahaha", false));
        //Debug.Log("该父文件夹数量以及所有子文件夹数量" + DirectoryCount("D:\\hahaha", true));
        //Debug.Log("该父文件夹数量" + DirectoryCount("D:\\hahaha", false));
        //Debug.Log(TotalFileSizes("C:\\Users\\EasyAR\\Desktop\\Text") + ":字节");
        //RemoveAllEmptyDirectories("D:\\hahaha\\xixixi");
        //DeleteAllFiles("D:\\hahaha\\xixixi");
        //DeleteAllFilesDays("D:\\hahaha\\xixixi",10);
    }
}

  最近对获取文件夹研究一下,总结了一点,希望你们有用。

时间: 2024-09-29 10:18:42

如何处理运用某一路径之下文件夹的相关文章

用php遍历所有指定路径的文件夹以及其下所有子文件夹

<?php function bianli($dir){$list=scandir($dir);foreach($list as $v){ //遍历文件夹$file_location=$dir."/".$v; //记录路径if(is_dir($file_location)&&$v!="."&&$v!=".."){echo $v."&nbsp<br>";echo &quo

c# 读取路径下文件夹名-文件夹名-文件名

using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Web namespace PI_disease.PIAnalysis{ /// <summary> /// readfilename 的摘要说明 /// </summary>     public class readfilename : IHttpHandler     { public voi

java判断路径是文件夹还是文件

当给定一个路径没有后缀的时候,很难分辨代码是文件还是文件夹,如下图: 我在桌面建立了一个名为one的文件,路径为:/Users/XXXXXX/Desktop/one java代码如下: import java.io.File; public class Flie_or_Folder { public static void main(String s[]){ String path ="/Users/XXXXX/Desktop/one"; File file = new File(pa

iOS开发 - 检测路径下文件夹是否存在

NSFileManager *fileManager = [NSFileManager defaultManager]; NSArray *homePath = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES); NSString *libraryPath = [homePath objectAtIndex:0]; NSString *tempPath = [libraryPath str

无法删除长路径的文件(夹)

极少数的情况下会遇到这种问题,但是遇到了就很头疼.现把解决方案记录以下: robocopy /MIR D:\empty-folder D:\folder-to-delete 这条命令的意思就是用空文件夹的内容镜像至你要删除的文件夹.

linux:查看路径下文件夹与文件的个数

linux查看某文件夹下文件的个数,使用命令1)统计当前目录下文件的个数,不包括子目录的$ ls -l | grep “^-” | wc -l 2)统计当前目录下文件的个数,包括子目录的$ ls -lR| grep “^-” | wc -l 3)查看某目录下文件夹的个数,包括子目录的$ ls -lR | grep “^d” | wc -l 说明: ls列出当前目录下的文件和文件夹 ls -l 长列表输出该目录下文件信息(注意这里的文件,不同于一般的文件,可能是目录.链接.设备文件等) ls -l

tcl/tk实例详解——返回一个文件夹下所有文件的绝对路径

http://blog.csdn.net/dulixin/article/details/2133840 #所有代码如下,使用注释的方式讲解脚本#修改好文件夹和保存结果路径,可以把本文件直接拷贝进tcl解释器运行 #脚本目的:返回一个文件夹下所有的文件的绝对路径#主要讲述和操作的命令cd.pwd.glob#次要命令:file.open.catch #脚本思想:使用递归返回所有的文件路径,可以遍历到所有的子文件夹 #脚本以在window目录下为例,需要在其它系统下请修改路径名#需要返回文件路径的文

VC 获取指定文件夹路径的方法小结

VC获取指定文件夹路径 flyfish  2010-3-5 一 使用Shell函数 1 获取应用程序的安装路径 TCHAR buf[_MAX_PATH];SHGetSpecialFolderPath(NULL,buf,CSIDL_PROGRAM_FILES,NULL);AfxMessageBox(buf); 2 获取应用程序数据路径的文件夹 TCHAR bufApplicateData[_MAX_PATH];SHGetSpecialFolderPath(NULL,bufApplicateData

Java 递归获取一个路径下的所有文件,文件夹名称

package com.readfile; import java.io.File; public class GetAllFiles { public static void main(String[] args) { //路径 这里写一个路径进去 String path="F:\\QQ文档"; //调用方法 getFiles(path); } /** * 递归获取某路径下的所有文件,文件夹,并输出 */ public static void getFiles(String path