重命名從喜馬拉雅下載的音頻文件


  Win10的應用商店中,可以安裝喜馬拉雅,並下載感興趣的音頻文件。下載的音頻如下圖所示, 有兩個json文件(圖1),其中一個json文件(2677885list.json)包含了所下載音頻的詳細信息,包括id和title(文件真實名稱);音頻文件是一串純數字的id作為名稱,沒有顯示音頻的真實名稱(圖2)。可以利用這個id找到音頻文件的真實名稱,並給音頻文件重命名。對音頻文件重命名后的效果(圖3)。

 

  本人用WinForm開發了一個應用,界面主要三個部分:1. 選擇音頻目錄;2. 選擇json文件;3. 開始。

1. 選擇音頻目錄:

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

2. 選擇json文件:

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

3. 開始:

(1)定義FileInfo實體類

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

(2)定義FileInfo的泛型類對象,讀取json文件,轉換成string類型,再反序列化為類對象

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

(3)獲取目錄中的音頻文件

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

(4)根據json中的id信息找到對應的文件,然后用title和.mp3組成新的文件名,最后用MoveTo方法進行重命名

View Code

工程下載:https://files.cnblogs.com/files/GordonYang/XimalayaRename_V1.0.rar


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM