zoukankan      html  css  js  c++  java
  • vs报错“以下文件中的行尾不一致,是否将行尾标准化”

    vs报错“以下文件中的行尾不一致,是否将行尾标准化”

    clipboard

    分析:

    通过读取源文件,发现换行都使用的是“ ”

    clipboard[1]

     

    Windows和Unix不同的标准引起的...即“回车”和“换行”的问题...

    符号  ASCII码 意义
    10 换行NL
    13 回车CR

    在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10个字符。但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符。要是在这0.2秒里面,又有新的字符传过来,那么这个字符将丢失。于是,研制人员想了个办法解决这个问题,就是在每行后面加两个表示结束的字符。一个叫做“回车”,告诉打字机把打印头定位在左边界;另一个叫做“换行”,告诉打字机把纸向下移一行。到了GUI时代光标都是自由移动的不再有回车的意义...

    所以符合Windows开发标准的文本编辑器Visual Studio才会提醒你当前编辑的文本不符合Windows行尾标准..

    1.Windows 中的换行符" "

    2.Unix/Linux 平台换行符是 " "。

    3.MessageBox.Show() 的换行符为 " "

    4.Console 的换行符为 " "

    换行符还因平台差异而不同。

    解决方案:

    1. 为保持平台的通用性,可以用系统默认换行符 System.Environment.NewLine。

    2. 替换所有的非标准换行符

     1 class Program_Utf8
     2    {
     3        static void Main(string[] args)
     4        {
     5            String folderPath = @"E:文件夹路径";
     6 
     7            ParseDirectory(folderPath, "*.cs", (filePath) =>
     8            {
     9                string text = "";
    10                using (StreamReader read = new StreamReader(filePath, Encoding.Default))
    11                {
    12                    string oldtext = read.ReadToEnd();
    13                    text = oldtext;
    14                    text = text.Replace("
    ", "
    ");
    15                    text = text.Replace("
    
    ", "
    "); // 防止替换了正常的换行符      
    16                    if (oldtext.Length == text.Length)
    17                    {
    18                        Console.WriteLine(filePath.Substring(filePath.LastIndexOf("\") + 1) + " 不需要标准化");
    19                        return; // 如果没有变化就退出                  
    20                    }
    21                }
    22                File.WriteAllText(filePath, text, Encoding.UTF8); //utf-8格式保存,防止乱码
    23 
    24                Console.WriteLine(filePath.Substring(filePath.LastIndexOf("\") + 1) + " 行尾标准化完成");
    25            });
    26 
    27            Console.ReadKey();
    28        }
    29 
    30        /// <summary>递归所有的目录,根据过滤器找到文件,并使用委托来统一处理</summary>
    31        /// <param name="info"></param>
    32        /// <param name="filter"></param>
    33        /// <param name="action"></param>
    34        static void ParseDirectory(string folderPath, string filter, Action<string> action)
    35        {
    36            if (string.IsNullOrWhiteSpace(folderPath)
    37                || folderPath.EndsWith("debug", StringComparison.OrdinalIgnoreCase)
    38                || folderPath.EndsWith("obj", StringComparison.OrdinalIgnoreCase)
    39                || folderPath.EndsWith("bin", StringComparison.OrdinalIgnoreCase))
    40                return;
    41 
    42            Console.WriteLine("读取目录:" + folderPath);
    43 
    44            // 处理文件
    45            string[] fileNameArray = Directory.GetFiles(folderPath, filter);
    46            if (fileNameArray.Length > 0)
    47            {
    48                foreach (var filePath in fileNameArray)
    49                {
    50                    action(filePath);
    51                }
    52            }
    53            else
    54            {
    55                Console.WriteLine("未发现文件!");
    56            }
    57 
    58            Console.WriteLine("====================================");
    59 
    60            //得到子目录,递归处理
    61            string[] dirs = Directory.GetDirectories(folderPath);
    62            var iter = dirs.GetEnumerator();
    63            while (iter.MoveNext())
    64            {
    65                string str = (string)(iter.Current);
    66                ParseDirectory(str, filter, action);
    67            }
    68        }
    69    }
    View Code

    image

  • 相关阅读:
    C# Asp.NET实现上传大文件(断点续传)
    asp.net mvc大文件上传、断点续传功能。
    JS&ASPDotNet_大文件上传问题
    javascript之大文件分段上传、断点续传(一)
    使用JS实现可断点续传的文件上传方案
    js+php大文件分片上传
    文件/大文件上传功能实现(JS+PHP)全过程
    js实现大文件分片上传的方法
    [每天一个Linux小技巧] 查看时钟源精度
    Linux
  • 原文地址:https://www.cnblogs.com/smallidea/p/5501014.html
Copyright © 2011-2022 走看看