Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }