路径分割的奇怪行为

huangapple go评论74阅读模式
英文:

path.split strange behavior

问题

似乎在path/filepath中的split方法存在问题。

我查看了调试器,似乎它没有将路径分割成部分。

Go版本:1.19

调试器输出:https://i.stack.imgur.com/5NHZ0.jpg

	case fsnotify.Rename:
		dir, filename := path.Split(event.Name)
		fileIndex := indexOfFile(filename, s.LoggedFiles[dir])
		if fileIndex == -1 {
			errChannel <- errors.New("file path does not exist in map")
			break
		}
		s.LoggedFiles[dir] = append(s.LoggedFiles[dir], s.LoggedFiles[dir][fileIndex])
		fmt.Println(s.LoggedFiles[dir])
	}
英文:

it seems that there is an issue with the split method in path/filepath

I have looked at the debugger and it seems like it does not split the path into
sections

go version:1.19

debugger output:https://i.stack.imgur.com/5NHZ0.jpg

		case fsnotify.Rename:
					dir, filename := path.Split(event.Name)
					fileIndex := indexOfFile(filename, s.LoggedFiles[dir])
					if fileIndex == -1 {
						errChannel &lt;- errors.New(&quot;file path does not exist in map&quot;)
						break
					}
					s.LoggedFiles[dir] = append(s.LoggedFiles[dir], s.LoggedFiles[dir][fileIndex])
					fmt.Println(s.LoggedFiles[dir])
				}

答案1

得分: 2

path.Split() 使用 / 作为分隔符。为了分割特定于操作系统的目录,你应该使用 path/filepath.Split(),它使用 os.PathSeparator

英文:

The path.Split() uses the / separator.
To split OS specific directories you should use the path/filepath.Split() that uses the os.PathSeparator.

huangapple
  • 本文由 发表于 2022年9月8日 06:05:07
  • 转载请务必保留本文链接:https://go.coder-hub.com/73641892.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定