package main;

import (
"os"
"log"
"time"
"fmt"
) //一些常用的文件操作函数 func main() {
//创建目录
//perm权限设置,os.ModePerm为0777
err := os.Mkdir("./tmp", os.ModePerm);
if err != nil {
log.Fatal(err);
} //创建多级目录
err2 := os.MkdirAll("./a/b/c", os.ModePerm);
if err2 != nil {
log.Fatal(err2);
} //等个3秒,看目录是否创建成功
time.Sleep(time.Second * 3); //删除目录
//如果目录下有文件或其他目录会出错
err3 := os.Remove("./tmp");
if err3 != nil {
log.Fatal(err3);
} //删除多级目录
//如果是单个名称,则删除所有子目录
err4 := os.RemoveAll("./a/b/c");
if err4 != nil {
log.Fatal(err4);
} //文件操作
//创建文件
//Create会返回一个文件对象,默认权限0666
file1, err5 := os.Create("./1.log");
defer file1.Close();
if err5 != nil {
log.Fatal(err5);
} //通过文件描述符(文件句柄)来创建文件
file2 := os.NewFile(file1.Fd(), "./2.log");
defer file2.Close(); //打开文件
//Open内部调用OpenFile,以只读方式打开
file3, err6 := os.Open("./1.txt");
defer file3.Close();
if err6 != nil {
log.Fatal(err6);
} //OpenFile指定文件打开方式,只读,只写,读写和权限
file4, err7 := os.OpenFile("./2.txt", os.O_RDWR, 0666);
defer file4.Close();
if err7 != nil {
log.Fatal(file4);
} //向文件写入数据
file4.Write([]byte("我写入数据")); //在指定位置写入数据
file4.WriteAt([]byte("指定位置写入数据"), 1024); //直接写入string
file4.WriteString("你好世界"); //读取文件数据 //将文件偏移量设置为开头
file4.Seek(0, 0);
tmp := make([]byte, 256);
//Read读取数据到[]byte中
for n, _ := file4.Read(tmp); n != 0; n, _ = file4.Read(tmp) {
fmt.Println(string(tmp));
} //ReadAt从off指定位置读取数据到[]byte中
file4.Seek(0, 0);
var off int64 = 0;
for {
n, _ := file4.ReadAt(tmp, off);
off += int64(n);
if n == 0 {
break;
} fmt.Println(string(tmp));
} //删除文件
//Go中删除文件和删除文件夹同一个函数
err8 := os.Remove("./1.txt");
if err8 != nil {
log.Fatal(err8);
}
}

  

go语言中常用的文件和文件夹操作函数的更多相关文章

  1. C语言中常用计时方法总结

    转自:http://blog.csdn.net/fz_ywj/article/details/8109368 C语言中常用计时方法总结 1. time() 头文件:time.h 函数原型:time_t ...

  2. linux 中常用的一些头文件

    #include <linux/***.h> 是在linux-2.6.29/include/linux下面寻找源文件. #include <asm/***.h> 是在linux ...

  3. Java中常用IO流之文件流的基本使用姿势

    所谓的 IO 即 Input(输入)/Output(输出) ,当软件与外部资源(例如:网络,数据库,磁盘文件)交互的时候,就会用到 IO 操作.而在IO操作中,最常用的一种方式就是流,也被称为IO流. ...

  4. go 语言中常用的包

    来自学习go语言.pdf 译者刑星 ==== fmt 包fmt实现了格式化IO函数,这与c的printf和scanf类似,格式化短语派生于c %v 默认格式的值.当打印结构时,加号(%+v)会增加字段 ...

  5. C语言中常用的字符串处理函数总结

    C语言中字符串处理函数备注 此文仅用于自己研究和记录 字符串处理函数 1. char *gets(char *s); #include<stdio.h> 功能: 从标准输入读入字符,并保存 ...

  6. linux 文件名称前后缀操作函数----取目录函数dir、取文件名称函数notdir、取后缀函数suffix、取前缀basename、加后缀函数addsuffix、加前缀addprefix、连接函数join

    1.1       文件名操作函数 下面我们要介绍的函数主要是处理文件名的.每个函数的参数字符串都会被当做一个或是一系列的文件名来对待. 1.1.1        取目录函数dir $(dir < ...

  7. C语言中以文本方式读写文件时换行符转换的注意事项

    我们知道在UNIX下是没有回车符(\r)的,只有换行符(\n),而C语言诞生于UNIX(Linux即面向开源的UNIX,Mac OS也是UNIX发展而来的,而Windows是从MS-DOS发展而来,与 ...

  8. ssm项目中常用的上传文件

    在项目中,上传文件一般是必不可少的,所以今天学到新的上传方式,就干脆将学习过的上传方式记录一下 一.表单直接上传图片 表单头要设置 <form action="" metho ...

  9. C 语言中包含的标准头文件(24个)

    <assert.h><complex.h><ctype.h><errno.h><fenv.h><float.h><intt ...

随机推荐

  1. 在JSP页面中导入jstl标签库

    1 在工程中引用JSTL的两个jar包和标签库描述文件. (1)在项目上右击,从弹出的快捷键菜单中选择Properties命令,在出现的项目属性对话框上,选择DeploymentAssembly. ( ...

  2. zTree插件 角色、部门、人员分类选择

    // 传参数调用 function test(){roleOrOrgSelect(3,function(data){console.log(data);});} /** * * @param type ...

  3. JAVAWEB 一一 框架整合(SSH,Spring+Struts2+Hibernate IOC/DI AOP声明式事务处理 定时任务)

    package org.springframework.orm.hibernate3; import java.io.Serializable; import java.util.List; impo ...

  4. ArcGIS案例学习笔记-找出最近距离的垂线

    ArcGIS案例学习笔记-找出最近距离的垂线 联系方式:谢老师,135-4855-4328,xiexiaokui@qq.com 目的:对于任意矢量要素类,查找最近距离并做图 数据: 方法: 0. 计算 ...

  5. C++ 动态创建按钮及 按钮的消息响应

    动态创建的按钮 都会在消息 OnCommand 中得到处理,无论是什么消息,都会处理的 1\创建按钮 CButton* btn = new CButton(); btn->Create(_T(, ...

  6. 八皇后问题-dfs

    一.题意解析 国际象棋中的皇后,可以横向.纵向.斜向移动.如何在一个8X8的棋盘上放置8个皇后,使得任意两个皇后都不在同一条横线.竖线.斜线方向上?八皇后问题是一个古老的问题,于1848年由一位国际象 ...

  7. Java happen-before

    下面是happens-before原则规则: 程序次序规则:一个线程内,按照代码顺序,书写在前面的操作先行发生于书写在后面的操作: 锁定规则:一个unLock操作先行发生于后面对同一个锁额lock操作 ...

  8. Linux 安装nginx 及配置

    安装openssl库   # yum install -y openssl openssl-devel 安装gcc     # yum install gcc-c++ 安装 PCRE    # yum ...

  9. Spring集成MyBatis的使用-使用Mapper映射器

    Spring集成MyBatis使用 前面复习MyBatis时,发现在测试时,需要手动创建sqlSessionFactory,Spring将帮忙自动创建sqlSessionFactory,并且将自动扫描 ...

  10. U3D组件------CharacterController(角色控制器)

    角色控制器中有碰撞体和刚体的属性 Slope Limit:角色能爬的斜坡的坡度限制 Step Offset:角色走台阶的高度 Skin Width:当场景里面出现多个角色控制器的时候,两个对象在接触的 ...