亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

golang如何刪除文件

發布時間:2022-12-27 11:49:18 來源:億速云 閱讀:174 作者:iii 欄目:編程語言

本文小編為大家詳細介紹“golang如何刪除文件”,內容詳細,步驟清晰,細節處理妥當,希望這篇“golang如何刪除文件”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

在golang中,可以利用os包中內置的Remove()或RemoveAll()函數來刪除文件,語法“os.Remove(path)”或“os.RemoveAll(path)”。在刪除文件時,RemoveAll()和Remove()方法沒有太大的區別;但是在刪除目錄時,Remove()只能刪除空目錄,而RemoveAll()不受任何限制,都可以刪除。

在golang中,文件刪除、文件創建、文件讀取和文件寫入等,幾乎所有的文件操作都是通過 os 包完成的。 所以如果要在 Golang 中管理文件,需要使用 Golang 內置的 os 包。

要在 Golang 中刪除文件,請使用 os.Remove() 或os.RemoveAll()函數。 os.Remove()和os.RemoveAll()函 是內置的 Golang 函數,用于刪除文件。 提供該文件的文件路徑,可以刪除該文件。 它刪除命名文件或(空)目錄。

RemoveAll 函數跟 Remove 用法一樣,區別是會遞歸的刪除所有子目錄和文件。今天我們就來看看二者的具體差異有哪些。

刪除文件

os.Remove()

接下來,我們使用 os.Remove() 方法刪除一個文件,因為我們要用代碼進行驗證,在刪除前,我們首先需要創建一個文件 test.txt,然后刪除它。下面是具體的代碼:

package main

import ( 
    "os"
    "fmt"
)
 
func main () {
 
	testFile := "test.txt"
	_, err := os.Create(testFile) //創建文件
	if err != nil {
		fmt.Println("文件創建失敗")
	}
	
        // 使用 os.Remove() 刪除文件
        err = os.Remove(testFile)
 
	if err != nil {
		fmt.Println("刪除失敗")
	} else {
		fmt.Println("刪除成功")
	}
}

os.RemoveAll()

好了,通過上面的例子,我們可以看到 os.Remove() 方法刪除文件還是很方便的。那么,我們接下來看看 os.RemoveAll() 表現如何,還是剛才的代碼,我們把刪除方法替換一下。修改后代碼如下:

package main

import (
	"os"
	"fmt"
)
 
func main () {
 
	testFile := "test.txt"
	_, err := os.Create(testFile) //創建文件
	if err != nil {
		fmt.Println("文件創建失敗")
	}
	
        // 使用 os.RemoveAll() 刪除文件
	err = os.RemoveAll(testFile)
 
	if err != nil {
		fmt.Println("刪除失敗")
	} else {
		fmt.Println("刪除成功")
	}
}

代碼執行結果:

golang如何刪除文件

刪除目錄

os.Remove()

如果使用 os.Remove() 刪除目錄是什么效果呢?接下來直接看代碼!

實例代碼:

package main

import (
	"os"
	"fmt"
)
 
func main () {
 
	testDir := "d1/d2/d3"
	// 創建多級目錄
	err := os.MkdirAll(testDir, os.ModePerm)
	if 	err != nil {
		fmt.Println("文件創建失敗", err)
	}
        // 使用 os.Remove() 刪除文件
	err = os.Remove(testDir)
 
	if err != nil {
		fmt.Println("刪除失敗", err)
	} else {
		fmt.Println("刪除成功")
	}
}

代碼執行結果:

golang如何刪除文件

os.RemoveAll()

那么,os.RemoveAll() 方法刪除目錄是什么效果呢?也直接看代碼吧!

實例代碼:

package main

import (
	"os"
	"fmt"
)
 
func main () {
 
	testDir := "d1/d2/d3"
	// 創建多級目錄
	err := os.MkdirAll(testDir, os.ModePerm)
	if 	err != nil {
		fmt.Println("文件創建失敗", err)
	}
        // 使用 os.RemoveAll() 刪除文件
	err = os.RemoveAll(testDir)
 
	if err != nil {
		fmt.Println("刪除失敗")
	} else {
		fmt.Println("刪除成功")
	}
}

代碼執行結果:

golang如何刪除文件

現在發現,刪除目錄時,兩種方法效果也一樣,是不是二者沒有差別呢?答案是否定的。還是上面刪除目錄代碼,如果我們刪除的不是目錄 d3,而是目錄 d2,會是什么結果呢?

修改代碼后,我們最終發現 os.RemoveAll() 方法完全沒有問題,但是 os.Remove() 報錯了,報錯信息如下:

remove d1/d2/: directory not empty

是的,目錄 d2 不是空的,因為還有子目錄 d3,至此,我們終于發現了 os.RemoveAll() 和 os.Remove() 的差異是什么。

說明:

在刪除文件時,os.RemoveAll() 和 os.Remove() 方法沒有太大的區別。但是在刪除目錄時,os.Remove() 只能刪除空目錄,而 os.RemoveAll() 不受任何限制,都可以刪除。

讀到這里,這篇“golang如何刪除文件”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

塔城市| 紫金县| 大竹县| 郧西县| 固原市| 河曲县| 安阳市| 卓尼县| 来安县| 崇明县| 二连浩特市| 屏山县| 建水县| 洞口县| 丰都县| 文登市| 天长市| 高陵县| 平邑县| 涿鹿县| 新郑市| 延边| 英山县| 曲阳县| 武穴市| 山丹县| 固始县| 安乡县| 翁源县| 桂林市| 兴仁县| 富锦市| 鱼台县| 涞水县| 荔波县| 印江| 大足县| 札达县| 县级市| 吕梁市| 青神县|