a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > C# > 正文

c#目錄操作示例(獲取目錄名稱 獲取子目錄)

2020-01-24 02:49:13
字體:
供稿:網(wǎng)友
 
復(fù)制代碼 代碼如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace Humep.FileWatcher
{
    /// <summary>
    ///
    /// </summary>
    public static class DirectoryHelper
    {
        /// <summary>
        /// 初始化目錄
        /// </summary>
        /// <param name="directory"></param>
        /// <returns></returns>
        public static bool CreateDirectory(string directory)
        {
            if (string.IsNullOrWhiteSpace(directory))
            {
                return false;
            }
            if (Directory.Exists(directory))
            {
                return true;
            }
            var dirInfo = Directory.CreateDirectory(directory);
            return dirInfo != null;
        }

        /// <summary>
        /// 根據(jù)當(dāng)前日組合文件夾名稱
        /// </summary>
        /// <param name="now"></param>
        /// <returns></returns>
        public static string BuildDateDirectoryName(DateTime dateTime)
        {
            return dateTime.ToString("yyyyMMdd");
        }
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public static string BuildTodayDirectoryName()
        {
            return BuildDateDirectoryName(DateTime.Now);
        }
        /// <summary>
        /// 獲取目錄名稱
        /// </summary>
        /// <param name="directory"></param>
        /// <returns></returns>
        public static string GetDirectoryName(string directory)
        {
            if (!Directory.Exists(directory))
            {
                return string.Empty ;// DirectoryHelper.CreateDirectory(directory);
            }
            return new DirectoryInfo(directory).Name;
        }
        /// <summary>
        /// 獲取目錄文件夾下的所有子目錄
        /// </summary>
        /// <param name="directory"></param>
        /// <param name="filePattern"></param>
        /// <returns></returns>
        public static List<string> FindSubDirectories(string directory, int maxCount)
        {
            List<string> subDirectories = new List<string>();
            if (string.IsNullOrEmpty(directory))
            {
                return subDirectories;
            }
            if (maxCount <= 0)
            {
                return subDirectories;
            }
            string[] directories = Directory.GetDirectories(directory);
            foreach (string subDirectory in directories)
            {
                if (subDirectories.Count == maxCount)
                {
                    break;
                }
                subDirectories.Add(subDirectory);
            }
            return subDirectories;
        }
        public static List<string> FindSubDirectories(string directory)
        {
            return Directory.GetDirectories(directory, "*", SearchOption.AllDirectories).ToList<string>();
        }
        /// <summary>
        /// 根據(jù)時間查詢子目錄
        /// </summary>
        /// <param name="directory"></param>
        /// <param name="maxCount"></param>
        /// <returns></returns>
        public static List<string> FindSubDirectories(string directory, int maxCount, int days)
        {
            List<string> subDirectories = new List<string>();
            if (string.IsNullOrEmpty(directory))
            {
                return subDirectories;
            }
            if (maxCount <= 0)
            {
                return subDirectories;
            }
            string[] directories = Directory.GetDirectories(directory);
            DateTime lastTime = DateTime.Now.AddDays(-Math.Abs(days));
            foreach (string subDirectory in directories)
            {
                if (subDirectories.Count == maxCount)
                {
                    break;
                }
                DirectoryInfo dirInfo = new DirectoryInfo(subDirectory);
                if (dirInfo.LastWriteTime >= lastTime)
                {
                    subDirectories.Add(subDirectory);
                }
            }
            return subDirectories;
        }
        /// <summary>
        /// 將原目錄移動到目標(biāo)目錄
        /// </summary>
        /// <param name="sourceDirectory"></param>
        /// <param name="targetDirectory"></param>
        /// <returns></returns>
        public static bool MoveDirectory(string sourceDirectory, string targetDirectory)
        {
            if (string.IsNullOrEmpty(sourceDirectory) || string.IsNullOrEmpty(targetDirectory))
            {
                return false;
            }
            string laseMoveDirectory = string.Format("{0}//{1}", targetDirectory, DirectoryHelper.GetDirectoryName(sourceDirectory));
            while (Directory.Exists(laseMoveDirectory))
            {
                laseMoveDirectory = DirectoryHelper.Rename(laseMoveDirectory);
            }
            Directory.Move(sourceDirectory, laseMoveDirectory);
            return true;
        }
        /// <summary>
        /// 重新生成新的文件路徑
        /// </summary>
        /// <param name="filePath"></param>
        /// <returns></returns>
        public static string Rename(string filePath)
        {
            if (string.IsNullOrWhiteSpace(filePath))
            {
                return string.Empty;
            }
            string lastDirName = DirectoryHelper.GetDirectoryName(filePath);
            //重命名,則隨機在原來文件名后面加幾個隨機數(shù)字進行組裝成新的名字
            Random random = new Random(System.DateTime.Now.Millisecond);
            string randomData = random.Next().ToString();
            //把原文件名的名字加上隨機數(shù),組裝成新的文件名(避免重名)
            string newlastDirName = lastDirName + randomData;
            string newDirPath = string.Empty;
            newDirPath = filePath.Substring(0, filePath.LastIndexOf("http://")) + "http://" + newlastDirName;
            //返回新的路徑
            return newDirPath;
        }
        /// <summary>
        /// 獲取指定目錄下的所有文件和文件夾大小
        /// </summary>
        /// <param name="path">目錄路徑</param>
        /// <returns>string,返回所有文件夾名字</returns>
        public static long GetDirectorySize(string path)
        {
            long dirSize = 0;
            DirectoryInfo dir = new DirectoryInfo(path);
            foreach (FileInfo file in dir.GetFiles())
                dirSize += file.Length;
            foreach (DirectoryInfo subdir in dir.GetDirectories())
                dirSize += GetDirectorySize(subdir.FullName);
            return dirSize;
        }
    }
}
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 999在线观看精品免费不卡网站 | 久久国产一区二区 | 欧美日一区 | 成人高清| 日韩成人片 | 五月婷婷激情 | 99精品欧美一区二区三区综合在线 | 久久综合中文字幕 | 国产精品久久久久久亚洲调教 | 免费观看成人毛片 | 日韩在线观看视频一区二区 | 国产精品一区二区三区四区在线观看 | 狠狠色噜噜狠狠色综合久 | 日韩成年视频 | 最新国产精品精品视频 | 亚洲六月丁香色婷婷综合久久 | www.久久久| 欧美国产一区二区三区 | 久久免费精品视频 | 高清国产午夜精品久久久久久 | 日韩精品免费一区二区夜夜嗨 | 精品久久久久久久久久久 | www久久久久久 | 欧美视频网站 | 成人免费视频在线观看 | 久国久产久精永久网页 | 欧美在线观看禁18 | 国产中文在线 | 国产女人和拘做受视频 | 成人在线不卡视频 | 久久久久无码国产精品一区 | 久久久精品国产 | 一区中文字幕 | 欧美精品久久久久久久监狱 | 久久久久久久免费 | 久久国产精品无码网站 | 色图一区| 色噜噜网站 | 日本精品二区 | 日本精品一区二区三区在线观看视频 | 求av网站 |