前言
在.NET開(kāi)發(fā)中,用C#獲取文件信息是比較常見(jiàn)的操作。通過(guò)獲取文件信息,我們可以了解文件的屬性、大小、創(chuàng)建日期、修改日期等各種元數(shù)據(jù)信息。比如我們網(wǎng)站需要上傳文件,可以用擴(kuò)展名稱(chēng)控制上傳的類(lèi)型,獲取文件的大小來(lái)限制上傳文件等。本文將介紹一系列C#中獲取文件信息的方法,幫助你輕松獲取所需信息并進(jìn)行文件處理。
1、使用FileInfo
類(lèi)獲取文件信息
C#中提供了FileInfo
類(lèi),它封裝了文件的信息和操作。通過(guò)實(shí)例化FileInfo
[1]對(duì)象,可以輕松獲取文件的各種信息。
using System;
using System.IO;
class Program
{
static void Main()
{
string filePath = "C:\\Users\\username\\Documents\\example.txt";
FileInfo fileInfo = new FileInfo(filePath);
Console.WriteLine("文件名稱(chēng):" + fileInfo.Name);
Console.WriteLine("文件全路徑:" + fileInfo.FullName);
Console.WriteLine("文件大?。ㄗ止?jié)):" + fileInfo.Length);
Console.WriteLine("文件創(chuàng)建時(shí)間:" + fileInfo.CreationTime);
Console.WriteLine("文件最后修改時(shí)間:" + fileInfo.LastWriteTime);
// 可以根據(jù)需要獲取更多屬性
}
}
2、使用File
類(lèi)獲取文件信息
除了FileInfo
類(lèi),C#中的File
類(lèi)也提供了獲取文件信息的一些靜態(tài)方法。
using System;
using System.IO;
class Program
{
static void Main()
{
string filePath = "C:\\Users\\username\\Documents\\example.txt";
// 獲取文件大?。ㄗ止?jié))
long fileSize = new FileInfo(filePath).Length;
Console.WriteLine("文件大小(字節(jié)):" + fileSize);
// 獲取文件創(chuàng)建時(shí)間
DateTime creationTime = File.GetCreationTime(filePath);
Console.WriteLine("文件創(chuàng)建時(shí)間:" + creationTime);
// 獲取文件最后修改時(shí)間
DateTime lastWriteTime = File.GetLastWriteTime(filePath);
Console.WriteLine("文件最后修改時(shí)間:" + lastWriteTime);
// 獲取文件屬性
FileAttributes attributes = File.GetAttributes(filePath);
Console.WriteLine("文件屬性:" + attributes);
}
}
3、使用Directory
類(lèi)獲取目錄信息
如果需要獲取目錄下的文件信息,可以使用Directory
類(lèi)。
using System;
using System.IO;
class Program
{
static void Main()
{
string directoryPath = "C:\\Users\\username\\Documents";
// 獲取目錄下的文件列表
string[] files = Directory.GetFiles(directoryPath);
foreach (string file in files)
{
Console.WriteLine("文件名:" + Path.GetFileName(file));
Console.WriteLine("文件大小(字節(jié)):" + new FileInfo(file).Length);
Console.WriteLine("文件創(chuàng)建時(shí)間:" + File.GetCreationTime(file));
}
}
}
4、獲取文件的擴(kuò)展名和類(lèi)型
如果你要獲取文件的擴(kuò)展名或類(lèi)型(MIME類(lèi)型)等,可以使用Path
類(lèi)的一些靜態(tài)方法。
using System;
using System.IO;
class Program
{
static void Main()
{
string filePath = "C:\\Users\\username\\Documents\\example.txt";
//獲取文件的全路徑
Console.WriteLine("獲取文件的全路徑:" + Path.GetFullPath(filePath););
//獲取文件所在的目錄
Console.WriteLine("獲取文件所在的目錄:" + Path.GetDirectoryName(filePath));
//獲取文件的名稱(chēng)含有后綴 example.txt
Console.WriteLine("獲取文件的名稱(chēng)含有后綴:" + Path.GetFileName(filePath));
//獲取文件的名稱(chēng)沒(méi)有后綴 example
Console.WriteLine("獲取文件的名稱(chēng)沒(méi)有后綴:" + Path.GetFileNameWithoutExtension(filePath));
//獲取路徑的后綴擴(kuò)展名稱(chēng)(包含點(diǎn)號(hào)) .txt
Console.WriteLine("獲取路徑的后綴擴(kuò)展名稱(chēng):" + Path.GetExtension(filePath));
//獲取路徑的根目錄 C:\
Console.WriteLine("獲取路徑的根目錄:" + Path.GetPathRoot(filePath));
// 獲取文件類(lèi)型(MIME類(lèi)型)
string mimeType = "application/unknown"; // 默認(rèn)值
if (!string.IsNullOrEmpty(extension))
{
Microsoft.Win32.RegistryKey regKey = Microsoft.Win32.Registry.ClassesRoot.OpenSubKey(extension);
if (regKey != null && regKey.GetValue("Content Type") != null)
{
mimeType = regKey.GetValue("Content Type").ToString();
}
}
Console.WriteLine("文件類(lèi)型:" + mimeType);
}
}
5、結(jié)語(yǔ)
無(wú)論是使用FileInfo類(lèi)、File類(lèi)、Directory類(lèi)還是Path類(lèi),C#提供了多種獲取文件信息的方法,可以根據(jù)具體需求選擇合適的方法來(lái)獲取文件的屬性、大小、時(shí)間等信息。更多信息大家可以參考官網(wǎng)。希望本文對(duì)你在C#文件處理中有所幫助,歡迎留言或者吐槽。
轉(zhuǎn)自:翔星
鏈接:cnblogs.com/xbhp/p/17622717.html
- EOF -
該文章在 2023/9/19 15:09:49 編輯過(guò)