用C#寫的小工具,可以将目前檔案夾及其子檔案夾内的所有文本檔案轉換為utf-8編碼格式。
代碼如下:
代碼塊文法遵循标準markdown代碼,例如:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.Threading;
namespace convertor
{
class Program
{
static void Main(string[] args)
{
Convertor convertor = new Convertor();
convertor.Action();
}
}
public class Convertor
{
private string regSuffix = "*.java";
private string suffix = ".java";
string curPath = System.Environment.CurrentDirectory;
List<string> doneList = new List<string>();
public Convertor()
{
}
public void Action()
{
Console.WriteLine(curPath);
this.Search(curPath);
Console.WriteLine("已轉換已下檔案:");
foreach (string item in doneList)
{
Console.WriteLine(" ->: " + item);
}
Console.WriteLine("轉換完畢,按任意鍵退出。");
Console.ReadLine();
}
private void Turn2UTF8(FileSystemInfo fsi)
{
File.WriteAllText(fsi.FullName, File.ReadAllText(fsi.FullName, Encoding.Default), Encoding.UTF8);
doneList.Add(fsi.Name);
}
public void Search(string path)
{
DirectoryInfo search = new DirectoryInfo(path);
FileSystemInfo[] fsinfos = search.GetFileSystemInfos();
foreach (FileSystemInfo fsinfo in fsinfos)
{
DirectoryInfo di = fsinfo as DirectoryInfo;
if (fsinfo is DirectoryInfo)
{
foreach (FileInfo file in di.GetFiles(regSuffix))
{
Turn2UTF8(file);
}
this.Search(fsinfo.FullName);
}
else
{
if (fsinfo.Extension == suffix)
{
Turn2UTF8(fsinfo);
}
else
{
Console.WriteLine("不符合格式的檔案:" + fsinfo.FullName);
}
}
}
}
}
}