我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Golang实现文件夹的创建与删除的方法详解

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Golang实现文件夹的创建与删除的方法详解

学习笔记,写到哪是哪。

接着上一篇对纯文本文件读写操作,主要去实现一些文件夹操作。

创建文件夹

创建文件夹的时候往往要先判断文件夹是否存在。

样例代码如下

package main
 
import (
	"bufio"
	"fmt"
	"io"
	"os"
)
 
//判断文件夹是否存在
func HasDir(path string) (bool, error) {
	_, _err := os.Stat(path)
	if _err == nil {
		return true, nil
	}
	if os.IsNotExist(_err) {
		return false, nil
	}
	return false, _err
}
 
//创建文件夹
func CreateDir(path string) {
	_exist, _err := HasDir(path)
	if _err != nil {
		fmt.Printf("获取文件夹异常 -> %v\n", _err)
		return
	}
	if _exist {
		fmt.Println("文件夹已存在!")
	} else {
		err := os.Mkdir(path, os.ModePerm)
		if err != nil {
			fmt.Printf("创建目录异常 -> %v\n", err)
		} else {
			fmt.Println("创建成功!")
		}
	}
}
 
func main() {
	CreateDir("./output")
}

执行结果

创建成功!

Process finished with the exit code 0

注意

1、其中os.ModePerm主要是对创建文件夹的授权,了解linux的会比较熟悉。

其中 ModePerm FileMode = 0777,也就是最高权限,可读可写可执行。

也可以直接使用os.FileMode(644).String()。

删除文件和文件夹

使用os.Remove方法来删除文件,使用os.RemoveAll方法来删除文件夹。

可以看一下RemoveAll的内部实现,整体上就是遍历和递归操作。

样例代码如下

//删除文件
func RemoveFile(path string) error {
	_err := os.Remove(path)
	return _err
}
 
//删除文件夹
func RemoveDir(path string) error {
	_err := os.RemoveAll(path)
	return _err
}

小结

总的来说直接使用os,和Python一样,麻烦,还是得找个工具库来操作,方便简洁一点。而且一直往上传递error的方式让我头大,好烦啊。

补充

当然Golang还能实现一些常见的文件操作,如网络文件下载,读写csv文件等,以下是实现代码

网络文件下载

package main

import (
	"fmt"
	"github.com/zhangdapeng520/zdpgo_file"
)

func main() {
	f := zdpgo_file.New()
	savePath := "./"

	// 单个下载
	url := "https://avatar.csdnimg.cn/2/9/0/1_togolife.jpg"
	err := f.Download.Download(savePath, url)
	if err != nil {
		fmt.Println("下载失败:", err)
	} else {
		fmt.Println("下载成功")
	}

	// 批量下载
	urls := []string{
		"https://alifei04.cfp.cn/creative/vcg/nowarter800/new/VCG41N695593548.jpg",
		"https://tenfei02.cfp.cn/creative/vcg/nowarter800/new/VCG41N1014325904.jpg",
		"https://tenfei05.cfp.cn/creative/vcg/nowater800/new/VCG41545444880.jpg",
	}
	f.Download.Downloads(savePath, urls)
}

读写csv

package main

import (
	"fmt"
	"github.com/zhangdapeng520/zdpgo_file"
)

func main() {
	f := zdpgo_file.New()
	data := [][]string{
		{"a", "b", "c"},
		{"111", "222", "333"},
		{"111", "222", "333"},
		{"111", "222", "333"},
		{"111", "222", "333"},
		{"111", "222", "333"},
		{"111", "222", "333"},
		{"111", "222", "333"},
		{"111", "222", "333"},
		{"111", "222", "333"},
		{"111", "222", "333"},
	}

	// 写入
	f.Csv.Write("test.csv", data)

	// 读取
	dataNew, err := f.Csv.Read("test.csv")
	if err != nil {
		fmt.Println(err)
	}
	fmt.Println(dataNew)
}

到此这篇关于Golang实现文件夹的创建与删除的方法详解的文章就介绍到这了,更多相关Golang文件夹创建 删除内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Golang实现文件夹的创建与删除的方法详解

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Golang怎么实现文件夹的创建与删除

本文小编为大家详细介绍“Golang怎么实现文件夹的创建与删除”,内容详细,步骤清晰,细节处理妥当,希望这篇“Golang怎么实现文件夹的创建与删除”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。创建文件夹创建文件
2023-06-30

android创建和删除文件夹和文件的实现方法

这个也比较简单了,直接上代码 public static void createPath(String path) {Filefile = new File(path);if (!file.exists()) {f
2022-06-06

hadoop如何实现文件夹文件的创建与删除

小编给大家分享一下hadoop如何实现文件夹文件的创建与删除,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!package hadoop.test;import j
2023-06-02

windows xp系统中创建无法删除的文件夹的方法

有时我们电脑中会存在重要的文件,要删除一些不需要的文件时会把它给误删掉,当删除掉后很多用户会很后iUTaOXnv悔,但是这也于事无补了,那么什iUTaOXnv么没办法可以防止自己误删重js要文件或者防止别人删掉自己电脑中的重要文件
2023-06-07

Win7系统怎么创建无法删除的文件夹?

我们在电脑中正常创建新文件夹是直接可以删除的,但是如果想要创建一个无法删除的文件夹的话,则需要通过CMD命令创建。那www.cppcns.com么如何创建无法删除的文件夹?下面小编分享一下Win7系统下创建无法删http://www.cpp
2023-05-19

Linux服务器删除文件夹、删除文件、解压命令的方法

一、删除文件夹 例:rm -rf /usr/java 将会删除/usr/java目录以及其下所有文件、文件夹 二、删除文件 例:rm -f /usr/tomcat/conf/server.xml 将会强制删除/usr/tom
2022-06-04

Windows.old文件夹删除不了的解决方法

Windows.OLD文件夹是Win7对以前的旧版系统所做的备份。因为其特殊性,用户不能直接删除该文件夹。在直接删除的时候常常会出现“找不到该项目”的错误,导致Windows 7的Explorer(资源管理器)崩溃。
2023-06-03

Linux中文件/文件夹无法删除的解决方案

前言 最近我们的服务器被黑客攻击,然后有些文件的属性被修改,导致我们无法删除病毒文件,同时采用 root 用户也无法删除,现在把解决方案记录下来。 普通删除如果文件是当前用户的,那么使用 rm 命令就可以删除rm -rf file.
2022-06-04

springboot创建文件夹失败的解决方法

本篇文章给大家分享的是有关springboot创建文件夹失败的解决方法,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。springboot创建文件夹失败今天用idea写sprin
2023-06-29

JDK1.7 Paths,Files类实现文件夹的复制与删除的实例

实例如下所示:public static void copyFolder(String srcFolder, String destFolder) throws IOException { long startTime = Syst
2023-05-30

文件夹无法删除的原因以及解决方法

文件夹无法删除的原因通常有以下几种情况:1. 文件夹中包含正在使用的文件:如果文件夹中有正在运行的程序或被其他程序占用的文件,系统会阻止删除文件夹。解决方法是先关闭使用中的程序或释放文件的占用。2. 权限问题:如果当前用户没有足够的权限来删
2023-09-05

在windows7系统下如何创建他人无法删除的文件夹

如何在Windows7系统下创建别人无法删除的文件夹带给大家,在平常时一台电脑让多人使用是很正常的,不过电脑多人使用的话,有时候自己创建的文件夹老是无缘无故的消失掉,很有可能是被别人误删了,要是自己的重要文件被误删可就不好了,教你一招创建无
2023-06-09

怎么在电脑上创建一个无法被删除的文件夹

这篇文章将为大家详细讲解有关怎么在电脑上创建一个无法被删除的文件夹,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。方法/步骤:1.调出运行窗口,输入cmd命令并点击确定打开命令提示符界面。2.打开命令提示符
2023-06-27

windows7系统下如何创建一个别人无法删除的文件夹

如何在Windows7系统下创建别人无法删除的文件夹带给大家,在平常时一台电脑让多人使用是很正常的,不过电脑多人使用的话,有时候自己创建的文件夹老是无缘无故的消失掉,很有可能是被别人误删了,要是自己的重要文件被误删可就不好了,教你一招创jW
2023-06-06

Python 使用os.remove删除文件夹时报错的解决方法

os.remove不能用来删除文件夹,否则拒绝访问。 # -*- coding:utf-8 -*-import osif __name__ == "__main__": os.remove('D:\test') 运行结果:删除空目录: #
2022-06-04

Win7系统提示文件或文件夹不能删除的解决方法

相信大家经常会对文件、文件夹执行删除操作,这本是一件很简单的事,但有些时候却会遇到麻烦,系统提示文件或文件夹不能删除。诸如编程客栈:“文件正在使用”、“操作无法完成,因为文件已在###中打开”
2023-06-03

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录