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#將hashtable值轉(zhuǎn)換到數(shù)組中的方法
這篇文章主要介紹了C#將hashtable值轉(zhuǎn)換到數(shù)組中的方法,涉及C#中CopyTo方法的使用技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04
Unity3D實(shí)現(xiàn)鼠標(biāo)控制旋轉(zhuǎn)轉(zhuǎn)盤
這篇文章主要為大家詳細(xì)介紹了Unity3D實(shí)現(xiàn)鼠標(biāo)控制旋轉(zhuǎn)轉(zhuǎn)盤,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-02-02
C#批量插入數(shù)據(jù)到Sqlserver中的三種方式
這篇文章主要為大家詳細(xì)介紹了C#批量插入數(shù)據(jù)到Sqlserver中的三種方式,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-12-12
C#編程實(shí)現(xiàn)發(fā)送郵件的方法(可添加附件)
這篇文章主要介紹了C#編程實(shí)現(xiàn)發(fā)送郵件的方法,具備添加附件的功能,涉及C#文件傳輸及郵件發(fā)送的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-11-11
Unity3D使用Shader實(shí)現(xiàn)腐蝕消失
這篇文章主要為大家詳細(xì)介紹了Unity3D使用Shader實(shí)現(xiàn)腐蝕消失,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-02-02

