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

分析:
通过读取源文件,发现换行都使用的是“\n”

Windows和Unix不同的标准引起的...即“回车”和“换行”的问题...
| 符号 | ASCII码 | 意义 |
| \n | 10 | 换行NL |
| \r | 13 | 回车CR |
在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10个字符。但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符。要是在这0.2秒里面,又有新的字符传过来,那么这个字符将丢失。于是,研制人员想了个办法解决这个问题,就是在每行后面加两个表示结束的字符。一个叫做“回车”,告诉打字机把打印头定位在左边界;另一个叫做“换行”,告诉打字机把纸向下移一行。到了GUI时代光标都是自由移动的不再有回车的意义...
所以符合Windows开发标准的文本编辑器Visual Studio才会提醒你当前编辑的文本不符合Windows行尾标准..
1.Windows 中的换行符"\r\n"
2.Unix/Linux 平台换行符是 "\n"。
3.MessageBox.Show() 的换行符为 "\n"
4.Console 的换行符为 "\n"
换行符还因平台差异而不同。
解决方案:
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("\n", "\r\n");
15 text = text.Replace("\r\r\n", "\r\n"); // 防止替换了正常的换行符
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 }

vs报错“以下文件中的行尾不一致,是否将行尾标准化”的更多相关文章
- open file /var/mobile/Media/DCIM 相册中获取到的视频地址使用 报错 视频文件不存在
从相册中获取到的视频地址 例如 file:///var/mobile/Media/DCIM/100APPLE/IMG_9876.MOV 后面再使用的时候报错 视频文件不存在 那是因为在ios10. ...
- 报错 source-1.6 中不支持 diamond运算符
报错 source-1.6 中不支持 diamond运算符 解决方式 在pom.xml文件中修改 <plugin> <groupId>org.apache.maven.plug ...
- Linux命令-统计文件中的字节数、字数、行数:wc
Linux系统中的wc(Word Count)命令的功能为统计指定文件中的字节数.字数.行数,并将统计结果显示输出. 1.命令格式: wc [选项]文件... 2.命令功能: 统计指定文件中的字节数. ...
- SAP QA32试图做UD,系统报错-工厂 BTYC中的 QM 基选设置需要维护
SAP QA32 试图做UD,系统报错 - 工厂 BTYC 中的 QM 基选设置需要维护 - 检验批 10000062593,试图做使用决策,系统报错, 工厂 BTYC 中的 QM 基选设置需要维护 ...
- sharepoint 2013 文档库 资源管理器打开报错 在文件资源管理器中打开此位置时遇到问题,将此网站添加到受信任站点列表,然后重试。
我们在使用sharepoint 2013的文档库或者资源库的时候,经常会需要用到使用“资源管理器”来管理文档,但是有时候,点击“使用资源管理器打开”,会提示如下错误: 在文件资源管理器中打开此位置时遇 ...
- VS2010 报错该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
尤其代码是从linux平台复制过来: 报错如图: 更有甚者基本函数都报错: 当下检查发现if else break case等基本函数并无问题时,报错行数明显不一致等一定要注意文档编码格式, 最简单的 ...
- DataTables学习:从最基本的入门静态页面,使用ajax调用Json本地数据源实现前端开发深入学习,根据后台数据接口替换掉本地的json本地数据,以及报错的处理地方,8个例子(显示行附加信息,回调使用api,动态显示和隐藏列...),详细教程
一.DataTables 个人觉得学习一门新的插件或者技术时候,官方文档是最根本的,入门最快的地方,但是有时候看完官方文档,一步步的动手写例子,总会出现各种莫名其妙的错误,需要我们很好的进行研究出错 ...
- ecplise导入项目报错而文件不报错
第一步 确认项目的jdk和tomcat版本,在Java Build Path的Libraries中查看包是否有报错,按照本机环境进行配置 第二步 检查 Java Compiler中的jdk版本,和ec ...
- WinDbg抓取程序报错dump文件的方法
程序崩溃的两种主要现象: a. 程序在运行中的时候,突然弹出错误窗口,然后点错误窗口的确定时,程序直接关闭 例如: “应用程序错误” “C++错误之类的窗口” “程序无响应” “假死”等 此种崩溃特点 ...
随机推荐
- Ext JS 6学习文档-第6章-高级组件
Ext JS 6学习文档-第6章-高级组件 高级组件 本章涵盖了高级组件,比如 tree 和 data view.它将为读者呈现一个示例项目为 图片浏览器,它使用 tree 和 data view 组 ...
- HDU 3467 Song of the Siren(圆交)
Problem Description In the unimaginable popular DotA game, a hero Naga Siren, also known as Slithice ...
- POJ 1696 Space Ant(凸包变形)
Description The most exciting space discovery occurred at the end of the 20th century. In 1999, scie ...
- 《剑指Offer》题六十一~题六十八
六十一.扑克牌中的顺子 题目:从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的.2~10为数字本身,A为1,J为11,Q为12,K为13,而大.小王可以看成任意数字. 六十二.圆圈中 ...
- 团队协作第八周个人PSP
11.3 --11.9本周例行报告 1.PSP(personal software process )个人软件过程. 类型 任务 开始时间 结束时间 中断时间 实际用时 ...
- 自学系列--git的基础简介
上学期第一次接触git,感觉挺难的,我们都知道这个非常重要,自己对git也自学了一段时间,下面这是对自学内容的总结,拿出来和大家一块交流一下,让我们一起成长吧! 一 git简介 Git是一个开源的分布 ...
- 算法与数据结构实验题 6.3 search
★实验任务 可怜的 Bibi 刚刚回到家,就发现自己的手机丢了,现在他决定回头去搜索 自己的手机. 现在我们假设 Bibi 的家位于一棵二叉树的根部.在 Bibi 的心中,每个节点 都有一个权值 x, ...
- android入门 — ListView点击事件
listView中提供了两种点击事件的处理方法,分别是OnItemClick和OnItemLongClick. OnItemClick提供的是点击操作的处理,OnItemLongClick提供的是长按 ...
- 最近面试前端面试题整理(css部分)
对最近面试的面试题坐下总结: 一,css部分 1,html元素的垂直居中 答案: <div id="box"> <div> 测试 </div> ...
- cacti 添加redis监控(远程服务器)
监控主机 192.168.24.69 ,以下用A表示 被监控主机 192.168.24.79,以下用B标识 记得在A服务器的cacti中导入监控mysql的templates文件 拷贝ss_get ...