public void Reload() { // 取得NFS Exports設定 if (!File.Exists(Environment.GetEnvironmentVariable("Exports"))) { using (File.Create(Environment.GetEnvironmentVariable("Exports"))) { } } Mounts = File.ReadAllText(Environment.GetEnvironmentVariable("Exports")) .Split('\n') // 每行切割 .Select(x => x.Trim()) .Where(x => !x.StartsWith("#")) // 略過註解 .Where(x => !string.IsNullOrWhiteSpace(x)) .Select(x => NFSMount.Parse(x)) .ToList(); #if DEBUG if (Mounts.Count == 0) { Mounts.Add(new NFSMount() { Path = "/app", Clients = new List <NFSClient> () }); Mounts.Add(new NFSMount() { Path = "/app2", Clients = new List <NFSClient> () }); } #endif }
public static NFSMount Parse(string str) { var reg = new Regex(@"\s+"); var data = reg.Split(str, 2); var result = new NFSMount(); result.Path = data[0]; if (data.Length > 1) { result.Clients.AddRange( data[1].Split(new char[] { ')' }, StringSplitOptions.RemoveEmptyEntries) .Select(x => x.Trim() + ")") .Select(x => NFSClient.Parse(x)) ); } return(result); }