Kaynağa Gözat

追加校验码的开关

kinve 7 ay önce
ebeveyn
işleme
d23ebc026f
2 değiştirilmiş dosya ile 10 ekleme ve 7 silme
  1. BIN
      main.exe
  2. 10 7
      main.go

BIN
main.exe


+ 10 - 7
main.go

@@ -49,7 +49,7 @@ func getFileSize(filename string) (int64, error) {
 	return size, nil
 }
 
-func ReadBinFile(_name string, _type string, _en string, _block int) {
+func ReadBinFile(_name string, _type string, _en string, _block int, _addcheck int) {
 	FileName := filepath.Base(_name)
 	// FileType := filepath.Ext(_name)
 
@@ -117,11 +117,13 @@ func ReadBinFile(_name string, _type string, _en string, _block int) {
 	}
 
 	check := calChecknum(_type, data[:])
-	// 写入源文件校验码
-	if _en == "big" {
-		binary.Write(outputFile, binary.BigEndian, check)
-	} else {
-		binary.Write(outputFile, binary.LittleEndian, check)
+	if _addcheck == 1 {
+		// 追加校验码
+		if _en == "big" {
+			binary.Write(outputFile, binary.BigEndian, check)
+		} else {
+			binary.Write(outputFile, binary.LittleEndian, check)
+		}
 	}
 
 	// 大小端转换
@@ -157,10 +159,11 @@ func main() {
 	_type := parser.String("t", "type", &argparse.Options{Required: false, Help: "校验方式: sum32,crc32", Default: "sum32"})
 	_en := parser.String("e", "en", &argparse.Options{Required: false, Help: "校验码大小端: little,big", Default: "little"})
 	_section := parser.Int("s", "section", &argparse.Options{Required: false, Help: "分块大小: 0,1024,2048", Default: 0})
+	_addcheck := parser.Int("a", "addcheck", &argparse.Options{Required: false, Help: "文件结尾追加校验码", Default: 1})
 	err := parser.Parse(os.Args)
 	if err != nil {
 		fmt.Print(parser.Usage(err)) // 帮助 -h or --help
 		return
 	}
-	ReadBinFile(*_name, *_type, *_en, *_section)
+	ReadBinFile(*_name, *_type, *_en, *_section, *_addcheck)
 }