Exemplo n.º 1
0
        public static List <LogInfo> TXTDelEmptyLines(EngineState s, CodeCommand cmd)
        {
            List <LogInfo> logs = new List <LogInfo>();

            Debug.Assert(cmd.Info.GetType() == typeof(CodeInfo_TXTDelEmptyLines));
            CodeInfo_TXTDelEmptyLines info = cmd.Info as CodeInfo_TXTDelEmptyLines;

            string fileName = StringEscaper.Preprocess(s, info.FileName);

            if (StringEscaper.PathSecurityCheck(fileName, out string errorMsg) == false)
            {
                logs.Add(new LogInfo(LogState.Error, errorMsg));
                return(logs);
            }

            if (File.Exists(fileName) == false)
            {
                logs.Add(new LogInfo(LogState.Error, $"File [{fileName}] not exists"));
                return(logs);
            }

            Encoding encoding = FileHelper.DetectTextEncoding(fileName);

            int    i        = 0;
            string tempPath = Path.GetTempFileName();

            using (StreamReader reader = new StreamReader(fileName, encoding))
                using (StreamWriter writer = new StreamWriter(tempPath, false, encoding))
                {
                    string lineFromSrc;
                    while ((lineFromSrc = reader.ReadLine()) != null)
                    {
                        if (lineFromSrc.Equals(string.Empty, StringComparison.Ordinal))
                        {
                            i++;
                        }
                        else
                        {
                            writer.WriteLine(lineFromSrc);
                        }
                    }
                }
            FileHelper.FileReplaceEx(tempPath, fileName);

            logs.Add(new LogInfo(LogState.Success, $"Deleted [{i}] empty lines"));

            return(logs);
        }
Exemplo n.º 2
0
        public static List <LogInfo> TXTDelEmptyLines(EngineState s, CodeCommand cmd)
        {
            List <LogInfo> logs = new List <LogInfo>();

            CodeInfo_TXTDelEmptyLines info = cmd.Info.Cast <CodeInfo_TXTDelEmptyLines>();

            string fileName = StringEscaper.Preprocess(s, info.FileName);

            if (!StringEscaper.PathSecurityCheck(fileName, out string errorMsg))
            {
                return(LogInfo.LogErrorMessage(logs, errorMsg));
            }

            if (!File.Exists(fileName))
            {
                return(LogInfo.LogErrorMessage(logs, $"File [{fileName}] does not exist"));
            }

            Encoding encoding = EncodingHelper.DetectEncoding(fileName);

            int    i        = 0;
            string tempPath = FileHelper.GetTempFile();

            using (StreamReader r = new StreamReader(fileName, encoding, false))
                using (StreamWriter w = new StreamWriter(tempPath, false, encoding))
                {
                    string lineFromSrc;
                    while ((lineFromSrc = r.ReadLine()) != null)
                    {
                        if (lineFromSrc.Length == 0)
                        {
                            i++;
                        }
                        else
                        {
                            w.WriteLine(lineFromSrc);
                        }
                    }
                }
            FileHelper.FileReplaceEx(tempPath, fileName);

            logs.Add(new LogInfo(LogState.Success, $"Deleted [{i}] empty lines"));

            return(logs);
        }