Go:跨设备重命名文件的坑:os,2024年最新看这一篇就够了
在Go语言中,跨设备重命名文件可能会遇到一些问题,因为这通常涉及到不同的文件系统。在某些情况下,你可能需要先复制文件,然后删除原始文件。
以下是一个简单的跨设备文件重命名的示例代码:
package main
import (
"fmt"
"io/ioutil"
"os"
)
func main() {
// 假设我们要将 /mnt/sdcard/temp.txt 重命名为 /mnt/usb/newname.txt
sourcePath := "/mnt/sdcard/temp.txt"
destPath := "/mnt/usb/newname.txt"
// 先读取原始文件内容
content, err := ioutil.ReadFile(sourcePath)
if err != nil {
fmt.Printf("Error reading source file: %v\n", err)
return
}
// 写入到目标路径
err = ioutil.WriteFile(destPath, content, 0644) // 0644 是文件权限
if err != nil {
fmt.Printf("Error writing to destination file: %v\n", err)
return
}
// 删除原始文件
err = os.Remove(sourcePath)
if err != nil {
fmt.Printf("Error removing source file: %v\n", err)
return
}
fmt.Println("File renamed successfully.")
}
请注意,这个示例假设两个设备都挂载在同一台机器上,并且有相同的文件系统。如果设备之间的文件系统不同,或者你正在跨网络重命名文件,这种方法可能不适用。在这种情况下,你可能需要使用更复杂的方法,例如通过网络传输文件,然后在目标设备上重命名。
评论已关闭