public static List <LogInfo> DirMake(EngineState s, CodeCommand cmd) { List <LogInfo> logs = new List <LogInfo>(); CodeInfo_DirMake info = cmd.Info.Cast <CodeInfo_DirMake>(); string destDir = StringEscaper.Preprocess(s, info.DestDir); // Path Security Check if (!StringEscaper.PathSecurityCheck(destDir, out string errorMsg)) { return(LogInfo.LogErrorMessage(logs, errorMsg)); } // DestPath cannot be file if (File.Exists(destDir)) { return(LogInfo.LogErrorMessage(logs, $"File [{destDir}] already exists")); } if (Directory.Exists(destDir)) { logs.Add(new LogInfo(LogState.Ignore, $"Directory [{destDir}] already exists")); } else { Directory.CreateDirectory(destDir); logs.Add(new LogInfo(LogState.Success, $"Created Directory [{destDir}]")); } return(logs); }
public static List <LogInfo> DirMake(EngineState s, CodeCommand cmd) { List <LogInfo> logs = new List <LogInfo>(); Debug.Assert(cmd.Info.GetType() == typeof(CodeInfo_DirMake)); CodeInfo_DirMake info = cmd.Info as CodeInfo_DirMake; string destDir = StringEscaper.Preprocess(s, info.DestDir); // Path Security Check if (StringEscaper.PathSecurityCheck(destDir, out string errorMsg) == false) { logs.Add(new LogInfo(LogState.Error, errorMsg)); return(logs); } // DestPath cannot be file if (File.Exists(destDir)) { logs.Add(new LogInfo(LogState.Error, $"File [{destDir}] already exists")); return(logs); } if (Directory.Exists(destDir)) { logs.Add(new LogInfo(LogState.Ignore, $"Directory [{destDir}] already exists")); } else { Directory.CreateDirectory(destDir); logs.Add(new LogInfo(LogState.Success, $"Created Directory [{destDir}]")); } return(logs); }