golang创建文件目录os.Mkdir, os.MkdirAll有什么区别

  介绍

本篇内容介绍了“golang创建文件目录os.Mkdir,操作系统。MkdirAll有什么区别”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

如下所示:

,os.Mkdir (“abc",, os.ModePerm),,//创建目录,   ,os.MkdirAll (“dir1/dir2/dir3",, os.ModePerm),//创建多级目录

首先,试图从一个去可执行文件创建一组嵌套目录(如& # 39;dir1/dir2 dir3& # 39;),并打印错误出来看看。

犯错:=os.Mkdir (“dir1/dir2/dir3”os.ModePerm)   if 犯错!=nil {   ,fmt.Println (err),   }   结果:mkdir 。/dir1/dir2/dir3:,, system  cannot  find 从而path 指定。

Mkdir用于创建单个目录。

犯错:=os.Mkdir (“。/dir1" os.ModePerm)   if 犯错!=nil {   ,fmt.Println (err)   }

初次创建dir1时成功,再次创建dir1时,如果路径已经是一个目录,Mkdir会报错

mkdir 。/dir1:, Cannot  create  a  file  when  that  file  already 存在。

根据日期创建文件夹

import  (   ,“os"   ,“路径/filepath"   ,“time"   )//,CreateDateDir 根据当前日期来创建文件夹   func  CreateDateDir (Path 字符串),string  {   ,folderName :=, time.Now () .Format (“20060102”)   ,folderPath :=, filepath.Join(路径,folderName)   ,if  _, err :=, os.Stat (folderPath);, os.IsNotExist (err), {   ,//必须分成两步:先创建文件夹,再修改权限   ,os.Mkdir (folderPath, 0777), 0777年//也可以os.ModePerm   ,os.Chmod (folderPath, 0777)   ,}   return  folderPath   }

创建文件夹路径,请使用os.MkdirAll (folderPath,操作系统。ModePerm)

呃=os.MkdirAll (“。/dir1/dir2", os.ModePerm)   if 犯错!=nil {   ,fmt.Println (err)   ,}   犯错为零   成功创建dir1和dir2文件路径

MkdirAll会创建一个名为路径的目录以及任何必要的父项,并返回零,否则返回错误。许可位烫用于MkdirAll创建的所有目录。如果路径已经是一个目录,MkdirAll什么也不做,并返回零。

根据日期创建文件夹路径

uploadDir :=,“静态/上传/?+,time.Now () .Format (“2006/01/02/?   err :=, os.MkdirAll (uploadDir ,, 777)

其他操作系统包中的一些常用函数:

os.Getwd(),//获取当前目录

创建文件

f1, _ :=, os.Create (“。/1. txt"),   defer  f1.Close ()

以读写方式打开文件,如果不存在则创建文件,等同于上面操作系统。创建

f4,, _ :=, os.OpenFile (“。/4. txt",, os.O_RDWR | os.O_CREATE | os.O_TRUNC,, 0666)   defer  f4.Close ()

用os.path.join()连接两个文件名地址的时候,就比如

os.path.join (“D: \“,“test.txt"), \ \结果是D: \测试。txt

删除指定目录下所有文件

os.Remove (“abc/d/e/f")

删除指定目录

os.RemoveAll (“abc")

重命名文件

os.Rename (“。/2. txt",,“。/2 _new.txt")

如有不对欢迎指正,相互学习,共同进步。

<强>补充:去创建文件带目录

我就废话不多说了,大家还是直接看代码吧~

//,create  file  with  dir  if  dir  is  not 存在//,path  is  dir//,name  is  file 名字   func  createFileWithDir(字符串,path  name 字符串,content 字符串),{   ,os.MkdirAll(路径,os.ModePerm)   ,文件,_ :=, os.OpenFile(时间+ path “/? +,名字,,os.O_RDWR | os.O_CREATE | os.O_TRUNC,, 0666)   ,defer  file.Close ()   ,file.WriteString(内容)   }

golang创建文件目录os.Mkdir, os.MkdirAll有什么区别