C# 替换功能isn';在手动打开相关文件之前无法正常工作,这是为什么?
在用书本学习的过程中,有时我会从pdf中复制一些代码来测试它 假定此小exe将“”更改为“”或“ 它工作得很好,但前提是在调试方法之前手动打开测试的*.cs文件 当代码直接粘贴到相关文件中并关闭,而不再次打开时,Replace方法返回“意外字符?” 我不明白这个问题,因为File.ReadAllText已经打开并关闭了文件C# 替换功能isn';在手动打开相关文件之前无法正常工作,这是为什么?,c#,replace,C#,Replace,在用书本学习的过程中,有时我会从pdf中复制一些代码来测试它 假定此小exe将“”更改为“”或“ 它工作得很好,但前提是在调试方法之前手动打开测试的*.cs文件 当代码直接粘贴到相关文件中并关闭,而不再次打开时,Replace方法返回“意外字符?” 我不明白这个问题,因为File.ReadAllText已经打开并关闭了文件 using System; using System.Collections.Generic; using System.IO; class Test { publ
using System;
using System.Collections.Generic;
using System.IO;
class Test
{
public static void Main()
{
string path = Directory.GetCurrentDirectory();
string[] csfiles = Directory.GetFiles(path, "*.cs");
foreach (var item in csfiles)
{
string text = File.ReadAllText(item);
text = text.Replace("‘", "\'")
.Replace("’", "\'")
.Replace("“", "\"")
.Replace("”", "\"");
File.WriteAllText(item, text);
}
}
}
显然,文件.ReadAllText();在打开时会更改编码 我的字符(ASCII+ANSI)在打开时就被破坏了 string text=File.ReadAllText(路径,Encoding.Default);在打开时保持原始编码。替换此项可以正常工作,因此我的exe 谢谢你的帮助
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
class Test
{
public static void Main()
{
string path = Directory.GetCurrentDirectory();
string[] csfiles = Directory.GetFiles(path, "*.cs");
foreach (var item in csfiles)
{
string text = File.ReadAllText(item, Encoding.Default);
string newtext = text.Replace("‘", "\'")
.Replace("’", "\'")
.Replace("“", "\"")
.Replace("”", "\"");
File.WriteAllText(item, newtext);
}
}
}
只是为了澄清一下,您是针对example.cs这样的文件运行这段代码的,在它运行之前,您需要先打开这个文件(而不是您所讨论的代码的.cs文件)。另外,运行该文件时是否必须打开该文件,或者只需再次打开并保存它?example.cs文件是如何创建的?example.cs是我要更改的文件。是的。必须重新打开该文件,以便“替换”可以正确处理该文件。运行“替换”时不必打开该文件。我只需对其进行更改即可n文件.example.cs是通过手动复制和粘贴pdf格式书本中的一些代码来创建的。为什么不使用文本编辑器来进行替换?您确定要修改的文件在执行时位于工作目录中吗?这听起来肯定像是您第一次创建文件时正在做一些奇怪的事情。您对此有何看法正在复制文件(即您是否正在将其复制并粘贴到记事本中,是否正在使用其他文本编辑器)?此外,如果您对十六进制编辑器有信心,您可以尝试在打开文件并“修复”之前复制文件“修复后,将其与原始文件进行比较,并查看十六进制文件中的差异,这可能会准确地告诉我们出了什么问题。