程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> c#目次操作示例(獲得目次稱號 獲得子目次)

c#目次操作示例(獲得目次稱號 獲得子目次)

編輯:C#入門知識

c#目次操作示例(獲得目次稱號 獲得子目次)。本站提示廣大學習愛好者:(c#目次操作示例(獲得目次稱號 獲得子目次))文章只能為提供參考,不一定能成為您想要的結果。以下是c#目次操作示例(獲得目次稱號 獲得子目次)正文


 

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>
        /// 依據以後日組合文件夾稱號
        /// </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>
        /// 依據時光查詢子目次
        /// </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>
        /// 將原目次挪動到目的目次
        /// </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);
            //重定名,則隨機在本來文件名前面加幾個隨機數字停止組裝成新的名字
            Random random = new Random(System.DateTime.Now.Millisecond);
            string randomData = random.Next().ToString();
            //把原文件名的名字加上隨機數,組裝成新的文件名(防止重名)
            string newlastDirName = lastDirName + randomData;
            string newDirPath = string.Empty;
            newDirPath = filePath.Substring(0, filePath.LastIndexOf("\\")) + "\\" + 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;
        }
    }
}
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved