手机
当前位置:查字典教程网 >编程开发 >C#教程 >c#目录操作示例(获取目录名称 获取子目录)
c#目录操作示例(获取目录名称 获取子目录)
摘要:复制代码代码如下:usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;...

复制代码 代码如下:

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;

}

}

}

【c#目录操作示例(获取目录名称 获取子目录)】相关文章:

C#数组学习相关资料整理

c#简单读取文本的实例方法

WinForm中DataGridView添加,删除,修改操作具体方法

C#基础概念二十五问 16-20

在c#中把字符串转为变量名并获取变量值的小例子

基于字符集、字符编码与HTTP编码解码之万象详解

C#操作目录与文件的方法步骤

c# datetime方法应用介绍

C# Guid.NewGuid获得随机数

C#中一些你可能没用过的调试窗口的方法

精品推荐
分类导航