iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >C#如何实现文件筛选读取并翻译的自动化工具
  • 339
分享到

C#如何实现文件筛选读取并翻译的自动化工具

2023-07-05 13:07:17 339人浏览 泡泡鱼
摘要

这篇文章主要介绍了C#如何实现文件筛选读取并翻译的自动化工具的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C#如何实现文件筛选读取并翻译的自动化工具文章都会有所收获,下面我们一起来看看吧。思路首选读取项目文件夹

这篇文章主要介绍了C#如何实现文件筛选读取并翻译自动化工具的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C#如何实现文件筛选读取并翻译的自动化工具文章都会有所收获,下面我们一起来看看吧。

思路

  • 首选读取项目文件夹下的所有文件路径

  • 筛选路径文件后缀.只对.cs或自定义的文件操作读取

  • 使用正则表达式进行查询并处理为数组

  • 调用免费的百度翻译api进行任意类型的翻译

  • 使用replace进行替换字符串,并保存

准备工作

1,百度智能云领取免费的api接口

C#如何实现文件筛选读取并翻译的自动化工具

2,创建应用

C#如何实现文件筛选读取并翻译的自动化工具

3,调试api

C#如何实现文件筛选读取并翻译的自动化工具

代码实现

以上准备工作就绪后,代码就比较容易实现了,完整控制台代码如下:

Program.cs

using Batch_translation;using System.Text.RegularExpressions;Console.WriteLine("请按下任意键进行批量翻译!");Console.ReadLine();string strFolderPath = "you FolderPath";//你的项目文件夹路径string[] files = Directory.GetFiles(strFolderPath, "*", SearchOption.AllDirectories); // 获取文件夹下所有文件路径,包括子文件夹string[] subFolders = Directory.GetDirectories(strFolderPath, "*", SearchOption.AllDirectories); // 获取所有子文件夹路径foreach (var filePath in files){    //业务逻辑    if (filePath.EndsWith(".cs"))    {        BatchTran(filePath);//获取文件内容并进行转换操作    }}foreach (var folder in subFolders){    foreach (var filePath in Directory.GetFiles(folder))    {        //业务逻辑        if (filePath.EndsWith(".cs"))        {            BatchTran(filePath);//获取文件内容并进行转换操作        }    }}Console.WriteLine("转化完成");void BatchTran(string filePath){        BaiDuapi baiDuApi = new BaiDuApi("you apikey", "you secreTKEy");//百度api 初始化    string content = File.ReadAllText(filePath);//读取文本    string pattern = @"("".*[\u4E00-\u9FA5]+.*[\u4E00-\u9FA5]+.*"")";//定义所需要的正则表达式(ps:此正则表示查询英文双引号下的中文)    Regex myRegex = new Regex(pattern);    MatchCollection collection = myRegex.Matches(content);    foreach (Match match in collection)    {        var oldStr = "";        oldStr = match.Value;//.Substring(0, match.Value.Length - 1)        var newStr = baiDuApi.Translate(oldStr);        if (!string.IsNullOrEmpty(newStr))            content = content.Replace(oldStr, newStr);    }    if (collection.Count > 0)        // 将修改后的内容写入到文件中        File.WriteAllText(filePath, content);}

BaiDuApi.cs

using System;using System.IO;using Newtonsoft.JSON;using RestSharp; namespace Batch_translation{    public class BaiDuApi    {         private readonly string apiKey;        private readonly string secretKey;        public BaiDuApi(string apiKey, string secretKey)        {            this.apiKey = apiKey;            this.secretKey = secretKey;        }         public string Translate(string sourceText)        {            var token = GetAccessToken(apiKey, secretKey);            if (token == "")                return "";            var client = new RestClient($"https://aip.baidubce.com/rpc/2.0/mt/texttrans/v1?access_token={token}");            var request = new RestRequest("", Method.Post);            request.AddHeader("Content-Type", "application/json");            request.AddHeader("Accept", "application/json");             // 定义一个匿名类型对象            var data = new { from = "zh", to = "en", q = sourceText };            // 将对象序列化成 JSON 字符串            string body = JsonConvert.SerializeObject(data);            request.AddParameter("application/json", body, ParameterType.RequestBody);            var response = client.Execute(request);            if (response.Content == null)            {                return "";            }            var dataResult = JsonConvert.DeserializeObject<BaiDuMode>(response.Content);            if (dataResult.result != null)            {                if (dataResult.result.trans_result != null && dataResult.result.trans_result.Count > 0)                {                    return dataResult.result.trans_result[0].dst;                }            }            return sourceText;        }                  static string GetAccessToken(string API_KEY, string SECRET_KEY)        {            var client = new RestClient($"Https://aip.baidubce.com/oauth/2.0/token");            var request = new RestRequest("", Method.Post);            request.AddParameter("grant_type", "client_credentials");            request.AddParameter("client_id", API_KEY);            request.AddParameter("client_secret", SECRET_KEY);            var response = client.Execute(request);            Console.WriteLine(response.Content);            if (response.Content == null)                return "";            var result = JsonConvert.DeserializeObject<dynamic>(response.Content);            return result.access_token.ToString();        }      }}

关于“C#如何实现文件筛选读取并翻译的自动化工具”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“C#如何实现文件筛选读取并翻译的自动化工具”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网精选频道。

--结束END--

本文标题: C#如何实现文件筛选读取并翻译的自动化工具

本文链接: https://www.lsjlt.com/news/351775.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C#如何实现文件筛选读取并翻译的自动化工具
    这篇文章主要介绍了C#如何实现文件筛选读取并翻译的自动化工具的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C#如何实现文件筛选读取并翻译的自动化工具文章都会有所收获,下面我们一起来看看吧。思路首选读取项目文件夹...
    99+
    2023-07-05
  • C#实现文件筛选读取并翻译的自动化工具
    目录背景思路准备工作代码实现背景 我们项目一开始的所有提示都是中文,后来要做国际化。发现项目中的带双引号的中文居然有 2.3 w 多条!!!简直让人欲哭无泪......
    99+
    2023-03-19
    C#文件筛选 C#文件读取 C#文件翻译 C#自动化
  • Java如何实现properties文件动态修改并自动保存工具类
    这篇文章主要为大家展示了“Java如何实现properties文件动态修改并自动保存工具类”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Java如何实现properties文件动态修改并自动保存...
    99+
    2023-05-30
    java properties
  • 如何使用Python实现自动化文档整理工具
    这篇文章主要介绍“如何使用Python实现自动化文档整理工具”,在日常操作中,相信很多人在如何使用Python实现自动化文档整理工具问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何使用Python实现自动化...
    99+
    2023-07-06
  • 如何实现多个vue子路由文件自动化合并
    小编给大家分享一下如何实现多个vue子路由文件自动化合并,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1. 目录结构目录结构,如...
    99+
    2024-04-02
  • Java+GeoTools(开源的Java GIS工具包)快速入门-实现读取shp文件并显示
    场景 GeoTools GeoTools 是一个开源的 Java GIS 工具包,可利用它来开发符合标准的地理信息系统。 GeoTools 提供了 OGC (Open Geospatial Consortium) 规范的一个实现来作为他们的...
    99+
    2023-09-10
    java 开源 开发语言
  • C#递归应用之如何实现JS文件的自动引用
    这篇文章主要介绍了C#递归应用之如何实现JS文件的自动引用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C#递归应用之如何实现JS文件的自动引用文章都会有所收获,下面我们一起来看看吧。背景两张表,分别是 :sy...
    99+
    2023-07-05
  • Android如何实现读取SD卡下所有TXT文件名并用listView显示出来的方法
    这篇文章将为大家详细讲解有关Android如何实现读取SD卡下所有TXT文件名并用listView显示出来的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。具体如下:MainActivity.Javap...
    99+
    2023-05-31
    android sd卡 listview
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作