string - Golang 复制工具
问题描述
嘿,如果我一直在使用这个复制工具作为练习,因为我对 Golang 和编程完全陌生。到目前为止,它确实以我想要的方式工作,但我正在尝试对其进行微调。该工具要求提供源路径,而我的代码添加了一个"\"
舒适,但我希望程序在我"\"
在路径末尾放置或忘记这样做时忽略。程序应该自己添加它,以防我忘记并忽略它,以防已经有一个。
编码:
func main() {
fmt.Println("Willkommen beim Rocon Copy-Tool." +
"Wählen Sie bitte aus:")
fmt.Println("Drücken Sie die 1 um einen Dateipfad auszuwählen")
fmt.Println("Drücken Sie die 2 um das Programm zu beenden")
scanner := bufio.NewScanner(os.Stdin)
scanner.Scan()
input := scanner.Text()
if input == "1" {
fmt.Print("Geben Sie den gewünschten Dateipfad an: ")
scanner = bufio.NewScanner(os.Stdin)
scanner.Scan()
srcPath := scanner.Text()
fmt.Print("Geben Sie den gewünschten Dateinamen an: ")
scanner.Scan()
filename := scanner.Text()
// Open the source file
srcFile, err := os.Open(srcPath+ "\\" + filename)
if err != nil {
log.Fatal(err)
}
defer srcFile.Close()
// Create the destination file
fmt.Print("Geben Sie den gewünschten Speicherort an: ")
scanner.Scan()
scanner.Text()
dstPath := scanner.Text()
dstFile, err := os.Create(dstPath + filename)
if err != nil {
log.Fatal(err)
}
defer dstFile.Close()
// Copy the file
_, err = io.Copy(dstFile, srcFile)
}
}
我希望德语查询在阅读时不要打扰。
解决方案
正如 kostix 所指出的,我认为filepath.Join是您最好的选择。
这一行:
srcFile, err := os.Open(srcPath+ "\\" + filename)
会成为:
srcFile, err := os.Open(filepath.Join(srcPath, filename))
(您需要导入“路径/文件路径”)
您可以对目标文件执行相同的操作。
推荐阅读
- html - Laravel 站点在托管后无法正常工作 HTTP 错误 500 无法处理此请求
- regex - 这个不重定向的简单重写规则有什么问题?
- java - 将 XML 响应拆分为页面
- html - 致命错误:未捕获的错误调用未定义的函数 mysql_real_escape_string() HTML/PHPMYADMIN
- arrays - 我得到 ArrayIndexOutOfBoundsException
- android - 从另一个片段的其他视图控制片段的视图
- python - 对于使用 gdal 进行栅格计算,栅格波段在输入数据集中的重要性是什么?
- python - 从python中的for循环调用C++
- azure - Azure Runbook 命令
- java - Java SQL 注入