已知文件绝对路径使用C#获取该文件信息实例

在C#中,如果你已知文件的路径,可以使用 System.IO 命名空间中的类来获取文件的信息,例如文件大小、创建时间、修改时间等。以下是实现方法:


1. 使用 FileInfo 类获取文件信息

FileInfo 类提供了文件的详细信息,包括大小、创建时间、修改时间等。

示例代码:
using System;
using System.IO;

class Program
{
    static void Main(string[] args)
    {
        // 文件路径
        string filePath = @"C:\example\test.txt";

        // 创建 FileInfo 对象
        FileInfo fileInfo = new FileInfo(filePath);

        // 检查文件是否存在
        if (fileInfo.Exists)
        {
            // 获取文件信息
            Console.WriteLine("文件名: " + fileInfo.Name);
            Console.WriteLine("文件路径: " + fileInfo.FullName);
            Console.WriteLine("文件大小: " + fileInfo.Length + " 字节");
            Console.WriteLine("创建时间: " + fileInfo.CreationTime);
            Console.WriteLine("最后修改时间: " + fileInfo.LastWriteTime);
            Console.WriteLine("最后访问时间: " + fileInfo.LastAccessTime);
            Console.WriteLine("文件扩展名: " + fileInfo.Extension);
            Console.WriteLine("文件目录: " + fileInfo.DirectoryName);
        }
        else
        {
            Console.WriteLine("文件不存在!");
        }
    }
}
输出示例:
文件名: test.txt
文件路径: C:\example\test.txt
文件大小: 1024 字节
创建时间: 2023-10-01 12:00:00
最后修改时间: 2023-10-01 12:05:00
最后访问时间: 2023-10-01 12:10:00
文件扩展名: .txt
文件目录: C:\example
说明:
  • FileInfo 类提供了丰富的属性和方法来操作文件。

  • 使用 fileInfo.Exists 检查文件是否存在。

  • 常用属性:

    • Name:文件名。

    • FullName:文件的完整路径。

    • Length:文件大小(字节)。

    • CreationTime:文件创建时间。

    • LastWriteTime:文件最后修改时间。

    • LastAccessTime:文件最后访问时间。

    • Extension:文件扩展名。

    • DirectoryName:文件所在目录。


2. 使用 File 类获取文件信息

File 类提供了一些静态方法来获取文件信息。

示例代码:
using System;
using System.IO;

class Program
{
    static void Main(string[] args)
    {
        // 文件路径
        string filePath = @"C:\example\test.txt";

        // 检查文件是否存在
        if (File.Exists(filePath))
        {
            // 获取文件信息
            Console.WriteLine("文件名: " + Path.GetFileName(filePath));
            Console.WriteLine("文件路径: " + Path.GetFullPath(filePath));
            Console.WriteLine("文件大小: " + new FileInfo(filePath).Length + " 字节");
            Console.WriteLine("创建时间: " + File.GetCreationTime(filePath));
            Console.WriteLine("最后修改时间: " + File.GetLastWriteTime(filePath));
            Console.WriteLine("最后访问时间: " + File.GetLastAccessTime(filePath));
            Console.WriteLine("文件扩展名: " + Path.GetExtension(filePath));
            Console.WriteLine("文件目录: " + Path.GetDirectoryName(filePath));
        }
        else
        {
            Console.WriteLine("文件不存在!");
        }
    }
}
输出示例:
文件名: test.txt
文件路径: C:\example\test.txt
文件大小: 1024 字节
创建时间: 2023-10-01 12:00:00
最后修改时间: 2023-10-01 12:05:00
最后访问时间: 2023-10-01 12:10:00
文件扩展名: .txt
文件目录: C:\example
说明:
  • File 类提供静态方法,适合简单的文件操作。

  • 常用方法:

    • File.Exists:检查文件是否存在。

    • File.GetCreationTime:获取文件创建时间。

    • File.GetLastWriteTime:获取文件最后修改时间。

    • File.GetLastAccessTime:获取文件最后访问时间。

  • Path 类用于处理文件路径:

    • Path.GetFileName:获取文件名。

    • Path.GetFullPath:获取文件的完整路径。

    • Path.GetExtension:获取文件扩展名。

    • Path.GetDirectoryName:获取文件所在目录。


3. 获取文件的 MIME 类型

如果需要获取文件的 MIME 类型(例如 text/plainimage/jpeg 等),可以使用 System.Web.MimeMapping 类(适用于 ASP.NET 应用程序)。

示例代码:
using System;
using System.IO;
using System.Web;

class Program
{
    static void Main(string[] args)
    {
        // 文件路径
        string filePath = @"C:\example\test.txt";

        // 获取 MIME 类型
        string mimeType = MimeMapping.GetMimeMapping(filePath);

        Console.WriteLine("文件 MIME 类型: " + mimeType);
    }
}
输出示例:
文件 MIME 类型: text/plain
说明:
  • MimeMapping.GetMimeMapping 根据文件扩展名返回对应的 MIME 类型。

  • 需要引用 System.Web 程序集。


4. 获取文件的 MD5 或 SHA256 哈希值

如果需要验证文件的完整性,可以计算文件的哈希值。

示例代码:
using System;
using System.IO;
using System.Security.Cryptography;
using System.Text;

class Program
{
    static void Main(string[] args)
    {
        // 文件路径
        string filePath = @"C:\example\test.txt";

        // 计算文件的 MD5 哈希值
        string md5Hash = CalculateFileHash(filePath, "MD5");
        Console.WriteLine("文件 MD5 哈希值: " + md5Hash);

        // 计算文件的 SHA256 哈希值
        string sha256Hash = CalculateFileHash(filePath, "SHA256");
        Console.WriteLine("文件 SHA256 哈希值: " + sha256Hash);
    }

    static string CalculateFileHash(string filePath, string algorithm)
    {
        using (var stream = File.OpenRead(filePath))
        {
            using (var hashAlgorithm = HashAlgorithm.Create(algorithm))
            {
                byte[] hashBytes = hashAlgorithm.ComputeHash(stream);
                return BitConverter.ToString(hashBytes).Replace("-", "").ToLowerInvariant();
            }
        }
    }
}
输出示例: 
文件 MD5 哈希值: 5a105e8b9d40e1329780d62ea2265d8a
文件 SHA256 哈希值: 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824
说明:
  • 使用 HashAlgorithm.Create 创建哈希算法实例。

  • 通过 ComputeHash 方法计算文件的哈希值。

  • 支持多种哈希算法,如 MD5SHA1SHA256 等。


总结

功能实现方式说明
获取文件基本信息FileInfo 类提供文件的详细信息
获取文件基本信息File 类静态方法,适合简单操作
获取文件 MIME 类型MimeMapping.GetMimeMapping根据文件扩展名返回 MIME 类型
计算文件哈希值HashAlgorithm支持 MD5、SHA1、SHA256 等算法

根据你的需求选择合适的方式来获取文件信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CsharpDev-奶豆哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值