首页 > 解决方案 > Go Lang ioutil.writeFile 函数使目录和文件只读

问题描述

我创建了一个 go 程序来跟踪根路径下的所有文件,并在将更新的内容写入现有文件之后用目标字符串替换特定的源字符串,为此,我使用了 filepath.Walk 函数来跟踪文件和 ioutil.ReadFile 和 ioutil.WriteFile 读取和写入文件。所以,问题在于ioutil.WriteFile函数将根目录、子目录和文件标记为只读。我在网上查了这个解决方案,但找不到任何合适的东西。下面是相同的代码片段。

if strings.Contains(data, sourceString) {
                    data = strings.ReplaceAll(data, sourceString, targetStringArray[index])
                    ioutil.WriteFile(path, []byte(data), os.FileMode(0655))
                }

标签: go

解决方案


文件模式 0655 被转换为权限 rw-rx rx。这种权限组合很奇怪,因为所有者没有“x”,但组和其他人有。也许您想要的是 0755 (rwx rx rx) 用于可执行文件或 0644 (rw- r-- r--) 用于不可执行文件,这是最常用的文件。


推荐阅读