goLang 大文件分割与合并

前言与注意事项

大文件上传到服务器,往往需要将文件按一定大小切割成小文件,将小文件上传到服务器后,再合并成原来的文件;一定要按切片顺序合并,下面合成的代码片段并未对文件名进行排序,切片超过10个时,合成视频的就有问题了。

使用方式

上代码

package main

import (
	"flag"
	"fmt"
	"io/ioutil"
	"math"
	"os"
	"path/filepath"
)

const chunkSize = 1024 * 1024    // 将文件按 1M 大小进行切割

var (
	action  string
	infile  string
	outfile string
)

func split(infile string) {
	if infile == "" {
		panic("请输入正确的文件名")
	}

	fileInfo, err := os.Stat(infile)
	if err != nil {
		if os.IsNotExist(err) {
			panic("文件不存在")
		}
		panic(err)
	}

	num := math.Ceil(float64(fileInfo.Size()) / chunkSize)

	fi, err := os.OpenFile(infile, os.O_RDONLY, os.ModePerm)
	if err != nil {
		fmt.Println(err)
		return
	}
	fmt.Printf("要拆分成%.0f份\n", num)
	b :

你可能感兴趣的:(goLang,golang,开发语言,后端)