Go 问题集
删除文件后缀名,出现问题
import "strings"
func changePath(file_path string) string {
return strings.Replace(file_path, "/", "\\", -)
}
转换路径 /转换为\\
import "strings"
func changePath(file_path string) string {
return strings.Replace(file_path, "/", "\\", -)
}
字符串空白行处理
import "strings"
func dealFilename(file_name string) (name string) {
return strings.TrimSpace(file_name)
}
分离 name.ext 获得 name文件名 ext扩展名
import "path"
func splitFilename(file_name string) (name, ext string) {
filenameWithSuffix := path.Base(file_name)
ext = path.Ext(filenameWithSuffix)
name = strings.TrimSuffix(filenameWithSuffix, ext)
return
}
name.ext 遍历删除特定文件夹下 特定文件 指定带name所有扩展名的文件
import (
"path/filepath"
"fmt"
"os"
) path := "文件夹路径" // d:/path1/path2
name := "待删除文件名"
func_path := changePath(path) + "\\" + name + "." //改变路径格式 注:不带.时 是所有name*.ext
err := filepath.Walk(path, func(path string, f os.FileInfo, err error) error {
if f == nil {
return err
} if f.IsDir() {
return nil
} ok := strings.HasPrefix(path, func_path)
if ok {
//fmt.Println(path)
os.Remove(path)
}
return nil
})
if err != nil {
fmt.Println("删除失败")
}
fmt.Println("删除成功")
类型转换 int32 <-> []byte
import "binary"
func Int32ToBytes(i int32) []byte {
var buf = make([]byte, ) // uint64 is 8 byte uint32 4 byte uint16 2 byte uint8 byte
binary.LittleEndian.PutUint32(buf, uint32(i))
return buf
} func BytesToInt32(buf []byte) int32 {
return int32(binary.LittleEndian.Uint32(buf))
}
string 与 ASCII
import "fmt" str := ""
fmt.Println([]byte(str)[]) // buf := make([]byte, )
buf[] =
fmt.Println(string(buf[])) //
时间获取
import (
"time"
"fmt"
) now := time.Now() //当前时间撮
year, mon, day := now.Date() //年月日
hour, min, sec := now.Clock() //时分秒
nasec := ((now.Nanosecond() / 1e6) % ) //毫秒
date_time := fmt.Sprintf("%d%02d%02d%02d%02d%02d.%3d", year, mon, day, hour, min, sec, nasec) //20180910105423.123
读取配置信息 并写入结构v
import (
"io/ioutil"
"encoding/json"
) func readConfig(filename string) (v Config, err error) {
v = Config{} //下面使用的是相对路径,config.json文件和main.go文件处于同一目录下
data, err := ioutil.ReadFile(file_name)
if err != nil {
//fmt.Println("[#server: 读取config.json失败!]")
return
} err = json.Unmarshal(data, &v)
if err != nil {
//fmt.Println("[#server: 读取数据失败!]")
return
}
return
}
设置conn传输超时
import (
"net"
"fmt"
)
conn.SetWriteDeadline(time.Now().Add(time.Second * ))
wcnt, werr := conn.Write(bytes_buf.Bytes())
conn.SetWriteDeadline(time.Time{})
checkError(err)
fmt.Println(wcnt)
文件存在不存在
//如果返回的错误为nil,说明文件或文件夹存在
//如果返回的错误类型使用os.IsNotExist()判断为true,说明文件或文件夹不存在
//如果返回的错误为其它类型,则不确定是否在存在
func PathExists(path string) (bool, error) {
_, err := os.Stat(path)
if err == nil {
return true, nil
}
if os.IsNotExist(err) {
return false, nil
}
return false, err
}
# json文件和结构体的互相转换
## 从json文件中读取数据,并用结构体进行保存
func readConfig(filename string) (v Config, err error) {
v = Config{}
//下面使用的是相对路径,config.json文件和main.go文件处于同一目录下
data, err := ioutil.ReadFile(filename)
if err != nil {
//fmt.Println("[#server: 读取config.json失败!]")
return
}
err = json.Unmarshal(data, &v)
if err != nil {
//fmt.Println("[#server: 读取数据失败!]")
return
}
return
}
## 将结构体中的数据写入json文件中
func (c *config) writeJson(fileName string) error {
buf, err := json.Marshal(src)
if err != nil {
return err
}
//生成json文件
err = ioutil.WriteFile(c.fileName, buf, os.ModeAppend)
if err != nil {
return err
}
return nil
}
Go 问题集的更多相关文章
- 启动了VSAN服务的主机不在vCenter集群中
背景: 这个问题的来源是,某用户将该ESXi主机直接夺取到另一个vCenterA的管辖中,而这个vCenterA中集群A开启了VSAN功能,导致再次反向夺取到vCenterB中的时候带有了来自于集群A ...
- Apache Ignite之集群应用测试
集群发现机制 在Ignite中的集群号称是无中心的,而且支持命令行启动和嵌入应用启动,所以按理说很简单.而且集群有自动发现机制感觉对于懒人开发来说太好了,抱着试一试的心态测试一下吧. 在Apache ...
- 从0开始搭建SQL Server AlwaysOn 第二篇(配置故障转移集群)
从0开始搭建SQL Server AlwaysOn 第二篇(配置故障转移集群) 第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://www ...
- SQL Server技术内幕笔记合集
SQL Server技术内幕笔记合集 发这一篇文章主要是方便大家找到我的笔记入口,方便大家o(∩_∩)o Microsoft SQL Server 6.5 技术内幕 笔记http://www.cnbl ...
- Ubuntu 14.04中Elasticsearch集群配置
Ubuntu 14.04中Elasticsearch集群配置 前言:本文可用于elasticsearch集群搭建参考.细分为elasticsearch.yml配置和系统配置 达到的目的:各台机器配置成 ...
- windows+nginx+iis+redis+Task.MainForm构建分布式架构 之 (nginx+iis构建服务集群)
本次要分享的是利用windows+nginx+iis+redis+Task.MainForm组建分布式架构,由标题就能看出此内容不是一篇分享文章能说完的,所以我打算分几篇分享文章来讲解,一步一步实现分 ...
- 在开启DRS的集群中修复VMware虚拟主机启动问题
通过iSCSI方式连接到ESXi主机上的外挂存储意外失联了一段时间,导致部分虚拟主机在集群中呈现出孤立的状态,单独登陆到每台ESXi上可以看到这些虚拟主机都变成了unknow状态.因为有过上一次(VM ...
- 通过VMware的PowerCLI配置集群内指定主机的vMotion功能
PowerCLI是VMware开发的基于微软(MSFT)的PowerShell的命令行管理vSphere的实现,因此在批量化操作方面CLI会减轻很多GUI环境下的繁琐重复劳作. 现有场景中有大量的物理 ...
- 【Oracle 集群】ORACLE DATABASE 11G RAC 知识图文详细教程之集群概念介绍(一)
集群概念介绍(一)) 白宁超 2015年7月16日 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习 ...
- 【Big Data】HADOOP集群的配置(一)
Hadoop集群的配置(一) 摘要: hadoop集群配置系列文档,是笔者在实验室真机环境实验后整理而得.以便随后工作所需,做以知识整理,另则与博客园朋友分享实验成果,因为笔者在学习初期,也遇到不少问 ...
随机推荐
- xml布局显示需要预判断,可是还没有show出来,怎么办?
最近在实际工作中遇到了一种情况,写一个音量条,音量条显示出来之前要判断系统的音量大小,然后给音量条设置显示的位置.解决办法有两种, 第一种: m_pHostThread>MsgAsyncC ...
- LaTeX-手动安装宏包(package)以及生成帮助文档的整套流程
我使用的是ctex套装,本来已经自带了许多package,但是有时候还是需要使用一些没有预装的宏包,这时就需要自己安装package了.下载package可以从CTAN(Comprehensive T ...
- 面试知识整理-Java基础
三大特征:封装,继承,多态 多态:简单的说就是用同样的对象引用调用同样的方法但是做了不同的事情. 抽象:抽象是将一类对象的共同特征总结出来构造类的过程 包装,可以讲基本类型当做对象来使用,抽象只关心对 ...
- 关于HiddenHttpMethodFilter
这个类的代码比较少,所以把整个类的代码都复制过来.在注释中添加上自己的理解. public class HiddenHttpMethodFilter extends OncePerRequestFil ...
- is和as在类型转换时的性能差异
版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/xxdddail/article/details/36655219 is和as是.NET中经常使用的操 ...
- springMVC文件上传大小超过限制的问题
[转自]https://my.oschina.net/ironwill/blog/646762 springMVC是一个非常方便的web层框架,我们使用它的文件上传也非常的方便. 我们通过下面的配置来 ...
- BZOJ4602:[SDOI2016]齿轮(并查集)
Description 现有一个传动系统,包含了N个组合齿轮和M个链条.每一个链条连接了两个组合齿轮u和v,并提供了一个传动比x : y.即如果只考虑这两个组合齿轮,编号为u的齿轮转动x圈,编号为v ...
- UVA12034 Race
嘟嘟嘟 令dp[i]表示在n个人中,有 i 个人获得第一名的方案数,转移方程为dp[i] = C(i, n) * dp[n - i].C(i, n)就是从n个人中选 i 个第一,那么剩下的n - i ...
- empty() isset() isnull() 比较
有关 PHP 的 empty(),isset() 还有 is_null() 这三个函数的用法讨论得已经很多了,而且很多资料也未必能说得很清楚.这里再重复一次,但不是从概念去说,直接用程序例子来说话,应 ...
- 2018 Multi-University Training Contest 4 Problem B. Harvest of Apples 【莫队+排列组合+逆元预处理技巧】
任意门:http://acm.hdu.edu.cn/showproblem.php?pid=6333 Problem B. Harvest of Apples Time Limit: 4000/200 ...