天天看點

用C#寫的小工具,可以将目前檔案夾及其子檔案夾内的所有文本檔案轉換為utf-8編碼格式。用C#寫的小工具,可以将目前檔案夾及其子檔案夾内的所有文本檔案轉換為utf-8編碼格式。

用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);
                    }

                }
            }
        }

    }

}