JLChen
2020-12-09 e87985ec1dcb69beedaf9f95e8e7aba14b7c08d6
HDL_ON/DAL/FileUtils.cs
@@ -1,13 +1,7 @@
using System;
using System.IO;
using System.Collections.Generic;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Shared;
//using HDL_ON.UI;
using HDL_ON.DAL.Net;
using HDL_ON.DAL;
using HDL_ON.Entity;
namespace HDL_ON
{
@@ -15,6 +9,17 @@
    {
        public static string RootPath = Environment.GetFolderPath(System.Environment.SpecialFolder.Personal) + "/";
        /// <summary>
        /// 是否存在文件夹
        /// </summary>
        /// <returns></returns>
        public static bool IsExisFolder(string folderName)
        {
            bool result = false;
            var path = Path.Combine(RootPath, folderName);
            result = Directory.Exists(path);
            return result;
        }
        /// <summary>
        /// 创建一个住宅的备份文件夹
        /// </summary>
@@ -45,7 +50,7 @@
            foreach (var fileName in ReadRegionFiles(path))
            {
                File.Delete(Path.Combine(path, fileName));
                MainPage.Log("Del region file :" + fileName);
                MainPage.Log("删除文件名为:" + fileName);
            }
        }
@@ -75,11 +80,11 @@
            foreach (FileInfo NextFile in thFolders)
            {
                index++;
                if (NextFile.Name == "headImage.png")
                if (NextFile.Name.Contains(ImageUtlis.HEADIMAGE))
                {
                    continue;
                }
                if (NextFile.Name == "null" || NextFile.Name == "UserConfig" || NextFile.Name == "Register_File" || NextFile.Name == "AccountListDB")
                if (NextFile.Name == "null" || NextFile.Name == "UserConfig" || NextFile.Name == "UserInfo_File" || NextFile.Name == "AccountListDB" || NextFile.Name == OnAppConfig.ConfigFile)
                {
                    continue;
                }
@@ -124,7 +129,6 @@
                fileInfo.MoveTo(Application.RootPath + newFilePath);
            }
        }
        public static void ReNameFoler(string srcFolderPath, string destFolderPath)
        {
@@ -190,7 +194,7 @@
        /// <param name="fileName">File name.</param>
        public static void DeleteFile(string fileName)
        {
            if (fileName == null || fileName == "Language.ini" || fileName == "AccountListDB")
            if (fileName == null || fileName == "Language.ini" || fileName == "AccountListDB" || fileName == OnAppConfig.ConfigFile)
            {
                return;
            }
@@ -207,10 +211,9 @@
            for (int j = 0; j < filesList.Count; j++)
            {
                var f = filesList[j];
                if (f == "linphonerc" || f == "AccountListDB" || f == "Register_File")
                if (f == "linphonerc" || f == "AccountListDB" || f == "UserInfo_File" || f == OnAppConfig.ConfigFile)
                    continue;
                DeleteFile(f);
                MainPage.Log($"Del file :{f}");
            }
        }
@@ -404,130 +407,42 @@
        }
        /// <summary>
        /// 下载电台、音乐、DLNA等等网络图片
        ///
        /// </summary>
        /// <param name="fileName"></param>
        /// <param name="url"></param>
        public static void DownLoadImage(string fileName, string url)
        /// <param name="imagePath"></param>
        public static void FileCopyToRootPath(string oldPath, string fileName)
        {
            #region 如果当前目录不存在,就初始化
            string directioryPath = null;
            if (Shared.Application.IsPad)
            System.IO.FileInfo fileInfo = new System.IO.FileInfo(oldPath);
            if (fileInfo.Exists)
            {
                directioryPath = "Pad/" + "MusicImage";
            }
            else
            {
                directioryPath = "Phone/" + "MusicImage";
            }
            directioryPath = Path.Combine(RootPath, directioryPath);
            if (!Directory.Exists(directioryPath))
            {
                Directory.CreateDirectory(directioryPath);
            }
            #endregion
            if (!File.Exists(fileName))
            {
                System.Threading.Tasks.Task.Run(() =>
                {
                    FileStream fs = null;
                    try
                    {
                        HDL_ON.DAL.Net.MyWebClient webClient = new HDL_ON.DAL.Net.MyWebClient();
                        byte[] recevieBytes = webClient.DownloadData(new Uri(url));
                        fs = new FileStream(fileName, FileMode.Create, FileAccess.Write);
                        fs.Write(recevieBytes, 0, recevieBytes.Length);
                        fs.Flush();
                    }
                    catch { }
                    finally
                    {
                        if (fs != null)
                        {
                            fs.Close();
                        }
                    }
                });
                fileInfo.CopyTo(Path.Combine(RootPath, fileName), true);
                //Utlis.WriteLine("FileCopyToRootPath : " + Path.Combine(RootPath, fileName));
            }
        }
        /// <summary>
        /// 下载电台、音乐、DLNA等等网络图片
        /// </summary>
        /// <param name="fileName"></param>
        /// <param name="url"></param>
        public static string DownLoadImageFormBaidu(string album, string artist)
        {
            var url = "http://tingapi.ting.baidu.com/v1/restserver/ting?from=qianqian&version=2.1.0&method=baidu.ting.search.catalogSug&format=json&query=" + artist;
            string directioryPath = "MusicImage";
            directioryPath = Path.Combine(RootPath, directioryPath);
            if (!Directory.Exists(directioryPath))
            {
                Directory.CreateDirectory(directioryPath);
            }
            try
            {
                var song = Newtonsoft.Json.JsonConvert.DeserializeObject<Song>(new HDL_ON.DAL.Net.MyWebClient().DownloadString(new Uri(url)));
                if (song == null)
                {
                    return null;
                }
                foreach (var tempAlbum in song.album)
                {
                    if (tempAlbum.albumname == album && artist == tempAlbum.artistname)
                    {
                        var bytes = new HDL_ON.DAL.Net.MyWebClient().DownloadData(new Uri(tempAlbum.artistpic.Split('@')[0] + "@s_1,w_160,h_160"));
                        var filePath = Path.Combine(directioryPath, "AlbumArtistImage_" + album);
                        var fs = new FileStream(filePath, FileMode.Create, FileAccess.Write);
                        fs.Write(bytes, 0, bytes.Length);
                        fs.Flush();
                        fs.Close();
                        return filePath;
                    }
                }
                foreach (var tempArtist in song.artist)
                {
                    if (artist == tempArtist.artistname)
                    {
                        var bytes = new HDL_ON.DAL.Net.MyWebClient().DownloadData(new Uri(tempArtist.artistpic.Split('@')[0] + "@s_1,w_160,h_160"));
                        var filePath = Path.Combine(directioryPath, "AlbumArtistImage_" + artist);
                        var fs = new FileStream(filePath, FileMode.Create, FileAccess.Write);
                        fs.Write(bytes, 0, bytes.Length);
                        fs.Flush();
                        fs.Close();
                        return filePath;
                    }
                }
            }
            catch { }
            return null;
        }
    }
    [System.Serializable]
    class Song
    {
        //string [] ss = new string [] {  };
        public List<Album> album = new List<Album>();
        public List<Artist> artist = new List<Artist>();
        public string sss;
    }
    [System.Serializable]
    class Album
    {
        public string albumname;
        public string artistname;
        public string artistpic;
    }
    [System.Serializable]
    class Artist
    {
        public string artistname;
        public string artistpic;
    }
    //[System.Serializable]
    //class Song
    //{
    //    //string [] ss = new string [] {  };
    //    public List<Album> album = new List<Album>();
    //    public List<Artist> artist = new List<Artist>();
    //    public string sss;
    //}
    //[System.Serializable]
    //class Album
    //{
    //    public string albumname;
    //    public string artistname;
    //    public string artistpic;
    //}
    //[System.Serializable]
    //class Artist
    //{
    //    public string artistname;
    //    public string artistpic;
    //}
}