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