- using System;
- using System.Collections.Generic;
- using System.IO;
- using System.Linq;
- using System.Net;
- using System.Runtime.Remoting.Messaging;
- using System.Text;
- using System.Threading.Tasks;
- namespace FileEncode
- {
- class Program
- {
- static void Main(string[] args)
- {
- if (File.Exists(args[0]))
- {
- ProcessFile(args[0]);
- }
- if (Directory.Exists(args[0]))
- {
- var dir = args[0];
- ProcessDir(dir);
- }
- }
- private static void ProcessFile(string fileName)
- {
- var fi = new FileInfo(fileName);
- var sb = new StringBuilder();
- using (var fs = fi.OpenRead())
- {
- using (var br = new BinaryReader(fs))
- {
- var firstTwobytes = br.ReadBytes(2);
- foreach (var firstTwobyte in firstTwobytes)
- {
- sb.Append(firstTwobyte.ToString("X"));
- }
- }
- }
- var encoding = sb.ToString();
- if (encoding != "EFBB")
- {
- Console.WriteLine($"{fileName} {encoding}");
- File.WriteAllText(fileName,File.ReadAllText(fileName,Encoding.Default),Encoding.UTF8);
- }
- }
- private static void ProcessDir(string dir)
- {
- var files = Directory.GetFiles(dir);
- var fileInfos = (from file in files let fi = new FileInfo(file) where fi.Extension == ".js" select file).ToList();
- foreach (var fileInfo in fileInfos)
- {
- ProcessFile(fileInfo);
- }
- var dirs = Directory.GetDirectories(dir);
- foreach (var s in dirs)
- {
- ProcessDir(s);
- }
- }
- }
- }
- //该片段来自于http://www.codesnippet.cn/detail/1511201513995.html
来源: http://www.codesnippet.cn/detail/1511201513995.html