C#實(shí)現(xiàn)文件操作(復(fù)制,移動,刪除)的方法詳解
File類提供了常見的文件操作函數(shù),包括復(fù)制、移動、刪除、創(chuàng)建快捷方式等整個文件的操作以及讀取、設(shè)置文件屬性等功能。
文件操作
我們每天都要和文件打交道,常見的文件操作無非是創(chuàng)建、復(fù)制、移動、刪除以及創(chuàng)建快捷方式。
通過一些列Create和CreateText函數(shù),F(xiàn)ile提供了創(chuàng)建文件的功能,后者用于創(chuàng)建UTF-8編碼的文本文件,其返回值是一個文件句柄。
var f1 = File.Create("test.bin");
var f2 = File.CreateText("test.txt");
f1.close();
f2.close();運(yùn)行之后,將在運(yùn)行目錄下生成兩個文件,分別是test.bin, test.txt,二者默認(rèn)的返回格式分別是FileStream和StreamWriter。
下面基于這兩個文件,通過File類中的函數(shù),進(jìn)行如下操作
| 操作 | 判斷存在 | 復(fù)制 | 移動 | 刪除 |
|---|---|---|---|---|
| 函數(shù) | Exists | Copy | Move | Delete |
if (File.Exists("test.bin"))
Console.WriteLine("test.bin經(jīng)存在");
File.Copy("test.bin", "test1.bin");
File.Move("test.txt", "../test.txt");
File.Delete("test.bin");
if (!File.Exists("test.bin"))
Console.WriteLine("test.bin已刪除");
命令行輸出結(jié)果如下,此外,運(yùn)行目錄下的test.txt被移動到了上級目錄。
test.bin經(jīng)存在
test.bin已刪除
鏈接
通過CreateSymbolicLink函數(shù)可以創(chuàng)建鏈接,而ResolveLinkTarget則可獲取快捷方式指向的地址。
仍以test.bin為例
var f1 = File.Create("test.bin");
f1.Close();
File.CreateSymbolicLink(@"testLink", "test.bin");
var s = File.ResolveLinkTarget(@"testLink", true);
Console.WriteLine(s.FullName);由于系統(tǒng)限制,在生成軟件后,需要通過管理員模式打開,則可看到新建一個名為testLink的快捷方式,指向test.bin。而后調(diào)用ResolveLinkTarget則返回這個文件,命令行輸出結(jié)果為
C:\Users\Laser\Documents\00\0505\jsonTest\jsonTest\bin\Debug\net6.0\test.bin
文件屬性
| 讀取 | 設(shè)置 | |
|---|---|---|
| 文件屬性 | GetAttributes | SetAttributes |
| 創(chuàng)建時間 | GetCreationTime | GetCreationTime |
| 最后訪問時間 | GetLastAccessTime | SetLastAccessTime |
| 最后寫入時間 | GetLastWriteTime | SetLastWriteTime |
| Unix文件模式 | GetUnixFileMode | SetUnixFileMode |
其中,文件屬性是一個枚舉類型,進(jìn)入源碼可以看到,1為只讀ReadOnly,2為隱藏Hidden等。
關(guān)于文件的創(chuàng)建時間、訪問時間和更改時間,F(xiàn)ile針對讀取、設(shè)置分別提供了兩組函數(shù),分別采取本地時間和UTC時間。上表給出的所有與時間相關(guān)的函數(shù),都可以在后面添加Utc,表示協(xié)調(diào)世界時。例如GetCreationTime有對應(yīng)的GetCreationTimeUtc函數(shù)。
下面簡要測試一下部分函數(shù)
Console.WriteLine(File.GetAttributes("test.bin"));
Console.WriteLine(File.GetLastAccessTime("test.bin"));
Console.WriteLine(File.GetLastAccessTimeUtc("test.bin"));輸出如下
Archive
2023/5/14 16:40:42
2023/5/14 8:40:42
到此這篇關(guān)于C#實(shí)現(xiàn)文件操作(復(fù)制,移動,刪除)的方法詳解的文章就介紹到這了,更多相關(guān)C#文件操作內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C#中將DataTable轉(zhuǎn)化成List<T>的方法解析
大家應(yīng)該都知道在.net項目中使用到DataTable和List<T>集合的地方較多,有的時候需要將DataTable轉(zhuǎn)化成List<T>,那么改如何轉(zhuǎn)化呢?下面通過這篇文章來一起學(xué)習(xí)下吧,本文中給出了詳細(xì)的示例代碼,相信對大家的理解和學(xué)習(xí)具有一定的參考借鑒價值。2016-12-12
C#實(shí)現(xiàn)基于ffmpeg加虹軟的人臉識別的示例
本篇文章主要介紹了C#實(shí)現(xiàn)基于ffmpeg加虹軟的人臉識別的示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-10-10
C#使用NPOI實(shí)現(xiàn)Excel讀取數(shù)據(jù)以及保存數(shù)據(jù)
這篇文章主要為大家詳細(xì)介紹了C#如何使用core版本的NPOI實(shí)現(xiàn)Excel讀取數(shù)據(jù)以及保存數(shù)據(jù)功能,文中的示例代碼講解詳細(xì),感興趣的可以了解一下2025-03-03
C#構(gòu)建樹形結(jié)構(gòu)數(shù)據(jù)(全部構(gòu)建,查找構(gòu)建)
這篇文章主要介紹了C#構(gòu)建樹形結(jié)構(gòu)數(shù)據(jù)(全部構(gòu)建,查找構(gòu)建),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-10-10
C#/VB.NET實(shí)現(xiàn)在Word文檔中添加頁眉和頁腳
頁眉位于文檔中每個頁面的頂部區(qū)域,常用于顯示文檔的附加信息;頁腳位于文檔中每個頁面的底部的區(qū)域,常用于顯示文檔的附加信息。今天這篇文章就將為大家展示如何以編程的方式在在?Word?文檔中添加頁眉和頁腳2023-03-03
C#調(diào)用halcon實(shí)現(xiàn)使用鼠標(biāo)滾輪對圖片進(jìn)行縮放顯示
這篇文章主要為大家詳細(xì)介紹了C#如何調(diào)用halcon實(shí)現(xiàn)使用鼠標(biāo)滾輪對圖片進(jìn)行縮放顯示,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-03-03

