LingxinMeng 9 tháng trước cách đây
mục cha
commit
fb7f212e06

+ 3 - 0
aarch64/pjibot_guide/common/service/rosbag_upload.go

@@ -158,6 +158,9 @@ outLoop:
 
 		// 压缩采集data目录
 		{
+			// 1 如果 data.zip 已存在,先删除
+			util.DeleteFileIfExists(commonConfig.CloudConfig.DataDir.Dest)
+			// 2 重新压缩升成 data.zip
 			err = util.ZipDir(commonConfig.CloudConfig.DataDir.Src, commonConfig.CloudConfig.DataDir.Dest, commonConfig.CloudConfig.DataDir.SrcSub)
 			if err != nil {
 				c_log.GlobalLogger.Error("压缩data目录失败:", err)

+ 32 - 0
common/util/u_io.go

@@ -11,6 +11,38 @@ import (
 	"strings"
 )
 
+// 检查文件是否存在,如果存在则删除它,不返回错误
+func DeleteFileIfExists(filePath string) {
+	// 使用Stat函数检查文件是否存在
+	fileInfo, err := os.Stat(filePath)
+	if err != nil {
+		// 如果Stat返回错误,且错误是因为文件不存在,则忽略
+		if os.IsNotExist(err) {
+			fmt.Println("文件不存在:", filePath)
+			return
+		}
+		// 如果错误不是文件不存在,则记录或处理错误
+		fmt.Println("获取文件信息时出错:", err)
+		// 这里可以根据需要添加更多的错误处理逻辑,但按照要求我们不返回错误
+		return
+	}
+
+	// 如果文件存在,则检查是否为文件(虽然大多数情况下会是文件,但最好还是检查一下)
+	if !fileInfo.IsDir() {
+		// 调用Remove函数删除文件
+		err := os.Remove(filePath)
+		if err != nil {
+			// 删除文件时出错,记录或处理错误
+			fmt.Println("删除文件时出错:", err)
+			// 这里可以根据需要添加更多的错误处理逻辑,但按照要求我们不返回错误
+		} else {
+			fmt.Println("文件已删除:", filePath)
+		}
+	} else {
+		fmt.Println(filePath, "是一个目录,不是文件")
+	}
+}
+
 // 将指定的目录和子目录压缩成 ZIP 文件
 func ZipDir(src string, dest string, dirs []string) error {
 	// 创建 zip 命令参数

+ 17 - 0
test/time_test.go

@@ -0,0 +1,17 @@
+package test
+
+import (
+	"fmt"
+	"testing"
+	"time"
+)
+
+func TestTime(t *testing.T) {
+	t0 := time.Now()
+	fmt.Println(t0.Unix())
+	fmt.Println(t0.UnixNano())
+	t1 := time.Now()
+	diff := t1.Sub(t0)
+	fmt.Println(diff.Milliseconds())
+	time.Sleep(time.Millisecond * 100)
+}