package folderPaths import ( "os" "runtime" ) func InitFoldersAndFiles() { dirs := []string{rootFolder(), FileAtChatsFolder(""), FileAtDirectMessagesFolder(""), FileAtUsersFolder("")} for _, v := range dirs { if _, err := os.Stat(v); os.IsNotExist(err) { os.Mkdir(v, 0775) } } files := []string{AllChatsFilePath()} for _, v := range files { if _, err := os.Stat(v); os.IsNotExist(err) { f, _ := os.Create(v) f.Close() } } } func AllChatsFilePath() string { return buildPath(rootFolder(), "AllChats.txt") } func FileAtChatsFolder(fileName string) string { if fileName != "" { fileName += ".txt" } return buildPath(rootFolder(), "Chats", fileName) } func FileAtDirectMessagesFolder(fileName string) string { if fileName != "" { fileName += ".txt" } return buildPath(rootFolder(), "DirectMessages", fileName) } func FileAtUsersFolder(fileName string) string { if fileName != "" { fileName += ".txt" } return buildPath(rootFolder(), "Users", fileName) } func rootFolder() string { if runtime.GOOS == "windows" { return "C:\\Users\\username\\AppData\\Roaming\\ctfc" } home, _ := os.UserHomeDir() return home + "/Desktop/ctfc" } func buildPath(folders ...string) (path string) { sep := "/" if runtime.GOOS == "windows" { sep = "\\" } for i, v := range folders { path += v if i < len(folders)-1 { path += sep } } return }