本文小編為大家詳細(xì)介紹“golang如何刪除文件”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“golang如何刪除文件”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學(xué)習(xí)新知識吧。
十載的鄒平網(wǎng)站建設(shè)經(jīng)驗,針對設(shè)計、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。網(wǎng)絡(luò)營銷推廣的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整鄒平建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計,從而大程度地提升瀏覽體驗。創(chuàng)新互聯(lián)從事“鄒平網(wǎng)站設(shè)計”,“鄒平網(wǎng)站推廣”以來,每個客戶項目都認(rèn)真落實執(zhí)行。
在golang中,可以利用os包中內(nèi)置的Remove()或RemoveAll()函數(shù)來刪除文件,語法“os.Remove(path)”或“os.RemoveAll(path)”。在刪除文件時,RemoveAll()和Remove()方法沒有太大的區(qū)別;但是在刪除目錄時,Remove()只能刪除空目錄,而RemoveAll()不受任何限制,都可以刪除。
在golang中,文件刪除、文件創(chuàng)建、文件讀取和文件寫入等,幾乎所有的文件操作都是通過 os 包完成的。 所以如果要在 Golang 中管理文件,需要使用 Golang 內(nèi)置的 os 包。
要在 Golang 中刪除文件,請使用 os.Remove() 或os.RemoveAll()函數(shù)。 os.Remove()和os.RemoveAll()函 是內(nèi)置的 Golang 函數(shù),用于刪除文件。 提供該文件的文件路徑,可以刪除該文件。 它刪除命名文件或(空)目錄。
RemoveAll 函數(shù)跟 Remove 用法一樣,區(qū)別是會遞歸的刪除所有子目錄和文件。今天我們就來看看二者的具體差異有哪些。
刪除文件
os.Remove()
接下來,我們使用 os.Remove() 方法刪除一個文件,因為我們要用代碼進(jìn)行驗證,在刪除前,我們首先需要創(chuàng)建一個文件 test.txt,然后刪除它。下面是具體的代碼:
package main
import (
"os"
"fmt"
)
func main () {
testFile := "test.txt"
_, err := os.Create(testFile) //創(chuàng)建文件
if err != nil {
fmt.Println("文件創(chuàng)建失敗")
}
// 使用 os.Remove() 刪除文件
err = os.Remove(testFile)
if err != nil {
fmt.Println("刪除失敗")
} else {
fmt.Println("刪除成功")
}
}
os.RemoveAll()
好了,通過上面的例子,我們可以看到 os.Remove() 方法刪除文件還是很方便的。那么,我們接下來看看 os.RemoveAll() 表現(xiàn)如何,還是剛才的代碼,我們把刪除方法替換一下。修改后代碼如下:
package main
import (
"os"
"fmt"
)
func main () {
testFile := "test.txt"
_, err := os.Create(testFile) //創(chuàng)建文件
if err != nil {
fmt.Println("文件創(chuàng)建失敗")
}
// 使用 os.RemoveAll() 刪除文件
err = os.RemoveAll(testFile)
if err != nil {
fmt.Println("刪除失敗")
} else {
fmt.Println("刪除成功")
}
}
代碼執(zhí)行結(jié)果:
刪除目錄
os.Remove()
如果使用 os.Remove() 刪除目錄是什么效果呢?接下來直接看代碼!
實例代碼:
package main
import (
"os"
"fmt"
)
func main () {
testDir := "d1/d2/d3"
// 創(chuàng)建多級目錄
err := os.MkdirAll(testDir, os.ModePerm)
if err != nil {
fmt.Println("文件創(chuàng)建失敗", err)
}
// 使用 os.Remove() 刪除文件
err = os.Remove(testDir)
if err != nil {
fmt.Println("刪除失敗", err)
} else {
fmt.Println("刪除成功")
}
}
代碼執(zhí)行結(jié)果:
os.RemoveAll()
那么,os.RemoveAll() 方法刪除目錄是什么效果呢?也直接看代碼吧!
實例代碼:
package main
import (
"os"
"fmt"
)
func main () {
testDir := "d1/d2/d3"
// 創(chuàng)建多級目錄
err := os.MkdirAll(testDir, os.ModePerm)
if err != nil {
fmt.Println("文件創(chuàng)建失敗", err)
}
// 使用 os.RemoveAll() 刪除文件
err = os.RemoveAll(testDir)
if err != nil {
fmt.Println("刪除失敗")
} else {
fmt.Println("刪除成功")
}
}
代碼執(zhí)行結(jié)果:
現(xiàn)在發(fā)現(xiàn),刪除目錄時,兩種方法效果也一樣,是不是二者沒有差別呢?答案是否定的。還是上面刪除目錄代碼,如果我們刪除的不是目錄 d3,而是目錄 d2,會是什么結(jié)果呢?
修改代碼后,我們最終發(fā)現(xiàn) os.RemoveAll() 方法完全沒有問題,但是 os.Remove() 報錯了,報錯信息如下:
remove d1/d2/: directory not empty
是的,目錄 d2 不是空的,因為還有子目錄 d3,至此,我們終于發(fā)現(xiàn)了 os.RemoveAll() 和 os.Remove() 的差異是什么。
說明:
在刪除文件時,os.RemoveAll() 和 os.Remove() 方法沒有太大的區(qū)別。但是在刪除目錄時,os.Remove() 只能刪除空目錄,而 os.RemoveAll() 不受任何限制,都可以刪除。
讀到這里,這篇“golang如何刪除文件”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領(lǐng)會,如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
網(wǎng)站名稱:golang如何刪除文件
轉(zhuǎn)載源于:http://vcdvsql.cn/article32/poohsc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google、企業(yè)建站、定制開發(fā)、云服務(wù)器、面包屑導(dǎo)航、網(wǎng)站策劃
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)