经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » C# » 查看文章
重命名从喜马拉雅下载的音频文件
来源:cnblogs  作者:彩云之南常春藤  时间:2018/12/24 10:43:13  对本文有异议

  Win10的应用商店中,可以安装喜马拉雅,并下载感兴趣的音频文件。下载的音频如下图所示, 有两个json文件(图1),其中一个json文件(2677885list.json)包含了所下载音频的详细信息,包括id和title(文件真实名称);音频文件是一串纯数字的id作为名称,没有显示音频的真实名称(图2)。可以利用这个id找到音频文件的真实名称,并给音频文件重命名。对音频文件重命名后的效果(图3)。

 

  本人用WinForm开发了一个应用,界面主要三个部分:1. 选择音频目录;2. 选择json文件;3. 开始。

1. 选择音频目录:

  1. 1 private void bt_select_file_Click(object sender, EventArgs e)
  2. 2 {
  3. 3 FolderBrowserDialog path = new FolderBrowserDialog();
  4. 4 path.ShowDialog();
  5. 5 tb_file.Text = path.SelectedPath;
  6. 6 }
View Code

2. 选择json文件:

  1. 1 private void bt_select_json_Click(object sender, EventArgs e)
  2. 2 {
  3. 3 OpenFileDialog file = new OpenFileDialog();
  4. 4 file.ShowDialog();
  5. 5 tb_json.Text = file.FileName;
  6. 6 }
View Code

3. 开始:

(1)定义FileInfo实体类

  1. 1 public class FileInfo
  2. 2 {
  3. 3 public string id { get; set;}
  4. 4 public string title { get; set; }
  5. 5 }
View Code

(2)定义FileInfo的泛型类对象,读取json文件,转换成string类型,再反序列化为类对象

  1. 1 // 定义FileInfo的泛型类对象
  2. 2 List<FileInfo> fileInfo = new List<FileInfo>();
  3. 3
  4. 4 // 读取json文件,转换成string类型,再反序列化为类对象
  5. 5 using (StreamReader file = File.OpenText(tb_json.Text))
  6. 6 {
  7. 7 using (JsonTextReader reader = new JsonTextReader(file))
  8. 8 {
  9. 9 JToken token = JToken.ReadFrom(reader);
  10. 10 string json = token.ToString();
  11. 11 fileInfo = JsonConvert.DeserializeObject<List<FileInfo>>(json);
  12. 12 }
  13. 13 }
View Code

(3)获取目录中的音频文件

  1. 1 // 获取目录中的音频文件
  2. 2 DirectoryInfo dircetoryInfo = new DirectoryInfo(tb_file.Text);
  3. 3 System.IO.FileInfo[] files = dircetoryInfo.GetFiles();
View Code

(4)根据json中的id信息找到对应的文件,然后用title和.mp3组成新的文件名,最后用MoveTo方法进行重命名

  1. 1 // 根据json中的id信息找到对应的文件,然后用title和.mp3组成新的文件名,最后用MoveTo方法进行重命名
  2. 2 foreach (var file in files)
  3. 3 {
  4. 4 string[] sArray = file.Name.Split('.'); //获取文件不带扩展名的文件名
  5. 5 foreach (var item in fileInfo)
  6. 6 {
  7. 7 if (sArray[0] == item.id)
  8. 8 {
  9. 9 string destPath = Path.Combine(tb_file.Text, item.title + ".mp3"); //组合成新的文件名称和原始路径
  10. 10 file.MoveTo(destPath); // 文件重命名
  11. 11 }
  12. 12 }
  13. 13 }
View Code
 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号