zoukankan      html  css  js  c++  java
  • 如何处理运用某一路径之下文件夹

    /*
                   #########                       
                  ############                     
                  #############                    
                 ##  ###########                   
                ###  ###### #####                  
                ### #######   ####                 
               ###  ########## ####                
              ####  ########### ####               
             ####   ###########  #####             
            #####   ### ########   #####           
           #####   ###   ########   ######         
          ######   ###  ###########   ######       
         ######   #### ##############  ######      
        #######  #####################  ######     
        #######  ######################  ######    
       #######  ###### #################  ######   
       #######  ###### ###### #########   ######   
       #######    ##  ######   ######     ######   
       #######        ######    #####     #####    
        ######        #####     #####     ####     
         #####        ####      #####     ###      
          #####       ###        ###      #        
            ###       ###        ###              
             ##       ###        ###               
    __________#_______####_______####______________
    
                    我们的未来没有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);
        }
    }
    

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

  • 相关阅读:
    plsqldeveloper永久注册码
    git常用命令
    淘淘中的一些环境的处理
    Hibernate查询
    markdown的学习
    npm如何发布一个自己的package
    聊聊font-family的那些事
    js 随机生成任意长度的字符串
    CSS世界(张鑫旭)系列学习总结 (四)盒尺寸四大家族
    CSS世界(张鑫旭)系列学习总结 (三)width和height作用的具体细节
  • 原文地址:https://www.cnblogs.com/mclll520/p/6769069.html
Copyright © 2011-2022 走看看