src/DotNetCommon.Core/Extensions/FileAndDirectoryInfoExtensions.cs

(开头部分) 8KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

namespace DotNetCommon.Extensions
{
    using DotNetCommon;
    using System;
    using System.Collections.Generic;
    using System.Diagnostics;
    using System.IO;
    using System.Linq;
    using System.Text;

    /// <summary>
    /// <see cref="FileInfo"/> 和 <see cref="DirectoryInfo"/>的扩展类
    /// </summary>
    public static class FileAndDirectoryInfoExtensions
    {
        private const int DefaultBufferSize = 4096;
        private const char CarriageReturn = '\r';
        private const char NewLine = '\n';
        private const char Tab = '\t';

        /// <summary>
        /// 获取当前文件夹的大小(单位:B,包含子文件夹)
        /// </summary>
        public static long GetSizeInBytes(this DirectoryInfo directoryInfo)
        {
            var length = directoryInfo.GetFiles().AsParallel().Sum(file => file.Exists ? file.Length : 0);
            length += directoryInfo.GetDirectories().Sum(dir => dir.Exists ? dir.GetSizeInBytes() : 0);
            return length;
        }

        /// <summary>
        /// 获取当前文件夹的大小(人类易读的)
        /// </summary>
        public static string GetSizeInHumanize(this DirectoryInfo directoryInfo)
        {
            var length = GetSizeInBytes(directoryInfo);
            return UnitConverter.Humanize(length);
        }

        /// <summary>
        /// 判断当前文件夹是否是隐藏的
        /// </summary>
        public static bool IsHidden(this DirectoryInfo directoryInfo) => (directoryInfo.Attributes & FileAttributes.Hidden) != 0;

        /// <summary>
        /// 判断当前文件是否是隐藏的
        /// </summary>
        public static bool IsHidden(this FileInfo fileInfo) => (fileInfo.Attributes & FileAttributes.Hidden) != 0;

        /// <summary>
        /// 将当前文件重命名为 <paramref name="newName"/> 并返回新的文件<see cref="FileInfo"/>.
        /// </summary>
        public static FileInfo Rename(this FileInfo fileInfo, string newName)
        {
            Ensure.NotNull(fileInfo, nameof(fileInfo));
            Ensure.Exists(fileInfo);

            Ensure.NotNullOrEmptyOrWhiteSpace(newName);
            Ensure.That(newName.IsValidFileName(), $"Invalid file name: '{newName}'");

后面还有 155 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。