| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.IO; |
| | | using System.Net; |
| | | using HDL_ON.Entity; |
| | | |
| | | namespace HDL_ON.Common |
| | | { |
| | | public class FileUtlis |
| | | public class FileUtlis |
| | | { |
| | | static Common.FileUtlis _temp; |
| | | public static Common.FileUtlis Files |
| | |
| | | string RootPath = Environment.GetFolderPath(System.Environment.SpecialFolder.Personal) + "/"; |
| | | |
| | | string accountPath; |
| | | string AccountPath { |
| | | string AccountPath |
| | | { |
| | | get |
| | | { |
| | | if (string.IsNullOrEmpty(accountPath) || !accountPath.Contains(UserInfo.Current.ID)) |
| | | { |
| | | accountPath = Path.Combine(RootPath, UserInfo.Current.CurReginID); |
| | | accountPath = Path.Combine(RootPath, UserInfo.Current.ID); |
| | | if (!Directory.Exists(accountPath)) |
| | | { |
| | | Directory.CreateDirectory(accountPath); |
| | |
| | | { |
| | | get |
| | | { |
| | | if (string.IsNullOrEmpty(regionPath) || !regionPath.Contains(UserInfo.Current.CurReginID )) |
| | | if (DB_ResidenceData.Instance.CurrentRegion == null || DB_ResidenceData.Instance.CurrentRegion.id == null) |
| | | { |
| | | regionPath = Path.Combine(AccountPath, UserInfo.Current.CurReginID); |
| | | return AccountPath; |
| | | } |
| | | if (string.IsNullOrEmpty(regionPath) || !regionPath.Contains(DB_ResidenceData.Instance.CurrentRegion.id)) |
| | | { |
| | | regionPath = Path.Combine(AccountPath, DB_ResidenceData.Instance.CurrentRegion.id); |
| | | if (!Directory.Exists(regionPath)) |
| | | { |
| | | Directory.CreateDirectory(regionPath); |
| | |
| | | return regionPath + "/"; |
| | | } |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 文件是否存在 |
| | | /// </summary> |
| | | /// <param name="filePath">File path.</param> |
| | | public bool Exists(string filePath) |
| | | { |
| | | return File.Exists(Path.Combine(Files.RootPath, filePath)); |
| | | } |
| | | //public List<> |
| | | |
| | | |
| | | /// <summary> |
| | | /// 遍历文件 |
| | |
| | | fs = new FileStream(Path.Combine(RegionPath, fileName), FileMode.Create, FileAccess.Write); |
| | | fs.Write(bytes, 0, bytes.Length); |
| | | fs.Flush(); |
| | | MainPage.Log("SaveFile:" + fileName); |
| | | MainPage.Log($"SaveFile:{fileName}");//Path:{RegionPath} |
| | | return true; |
| | | } |
| | | catch (Exception ex) |
| | |
| | | } |
| | | } |
| | | } |
| | | /// <summary> |
| | | /// 读取userInfo文件 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public byte[] ReadUserInfo() |
| | | { |
| | | var fileName = "UserInfo_File"; |
| | | FileStream fs = null; |
| | | try |
| | | { |
| | | if (File.Exists(Path.Combine(RootPath, fileName))) |
| | | { |
| | | fs = new FileStream(Path.Combine(RootPath, fileName), FileMode.Open, FileAccess.Read); |
| | | } |
| | | else if (File.Exists(fileName)) |
| | | { |
| | | fs = new FileStream(fileName, FileMode.Open, FileAccess.Read); |
| | | } |
| | | else |
| | | { |
| | | return new byte[0]; |
| | | } |
| | | byte[] bytes = new byte[fs.Length]; |
| | | fs.Read(bytes, 0, bytes.Length); |
| | | return bytes; |
| | | } |
| | | catch |
| | | { |
| | | return new byte[0]; |
| | | } |
| | | finally |
| | | { |
| | | try |
| | | { |
| | | if (fs != null) |
| | | { |
| | | fs.Close(); |
| | | } |
| | | } |
| | | catch |
| | | { |
| | | |
| | | } |
| | | } |
| | | |
| | | } |
| | | /// <summary> |
| | | /// 保存userInfo |
| | | /// </summary> |
| | | /// <param name="bytes"></param> |
| | | /// <returns></returns> |
| | | public bool WirteUserinfo(byte[] bytes) |
| | | { |
| | | var fileName = "UserInfo_File"; |
| | | FileStream fs = null; |
| | | |
| | | try |
| | | { |
| | | fs = new FileStream(Path.Combine(RootPath, fileName), FileMode.Create, FileAccess.Write); |
| | | fs.Write(bytes, 0, bytes.Length); |
| | | fs.Flush(); |
| | | MainPage.Log("SaveFile:" + fileName); |
| | | return true; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | MainPage.Log("FileUtiles Code 113:" + ex.ToString()); |
| | | return false; |
| | | } |
| | | finally |
| | | { |
| | | try |
| | | { |
| | | if (fs != null) |
| | | { |
| | | fs.Close(); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | MainPage.Log("FileUtils Code 121 :" + ex.ToString()); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 读取userInfo文件 |
| | | /// </summary> |
| | |
| | | FileStream fs = null; |
| | | try |
| | | { |
| | | if (File.Exists(Path.Combine(AccountPath, fileName))) |
| | | if (File.Exists(Path.Combine(RootPath, fileName))) |
| | | { |
| | | fs = new FileStream(Path.Combine(AccountPath, fileName), FileMode.Open, FileAccess.Read); |
| | | fs = new FileStream(Path.Combine(RootPath, fileName), FileMode.Open, FileAccess.Read); |
| | | } |
| | | else if (File.Exists(fileName)) |
| | | { |
| | |
| | | |
| | | try |
| | | { |
| | | fs = new FileStream(Path.Combine(AccountPath, fileName), FileMode.Create, FileAccess.Write); |
| | | fs = new FileStream(Path.Combine(RootPath, fileName), FileMode.Create, FileAccess.Write); |
| | | fs.Write(bytes, 0, bytes.Length); |
| | | fs.Flush(); |
| | | MainPage.Log("SaveFile:" + fileName); |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | public byte[] ReadFile(string fileName) |
| | | { |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | // 读取指定路径文件内容 |
| | | public byte[] ReadFileForPath(string path) |
| | | { |
| | | FileStream fs = null; |
| | | try |
| | | { |
| | | if (File.Exists(path)) |
| | | { |
| | | fs = new FileStream(path, FileMode.Open, FileAccess.Read); |
| | | } |
| | | else |
| | | { |
| | | return new byte[0]; |
| | | } |
| | | byte[] bytes = new byte[fs.Length]; |
| | | fs.Read(bytes, 0, bytes.Length); |
| | | return bytes; |
| | | } |
| | | catch |
| | | { |
| | | return new byte[0]; |
| | | } |
| | | finally |
| | | { |
| | | try |
| | | { |
| | | if (fs != null) |
| | | { |
| | | fs.Close(); |
| | | } |
| | | } |
| | | catch |
| | | { |
| | | |
| | | } |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 下载网络图片 |
| | | /// </summary> |
| | | /// <param name="fileName"></param> |
| | | /// <param name="url"></param> |
| | | public void DownLoadImage(string fileName, string url, Action action) |
| | | { |
| | | if (!File.Exists(fileName)) |
| | | { |
| | | System.Threading.Tasks.Task.Run(() => |
| | | { |
| | | FileStream fs = null; |
| | | try |
| | | { |
| | | MyWebClient webClient = new MyWebClient(); |
| | | byte[] recevieBytes = webClient.DownloadData(new Uri(url)); |
| | | fs = new FileStream(Path.Combine(RootPath, fileName), FileMode.Create, FileAccess.Write); |
| | | //fs = new FileStream(fileName, FileMode.Create, FileAccess.Write); |
| | | fs.Write(recevieBytes, 0, recevieBytes.Length); |
| | | fs.Flush(); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | MainPage.Log($"down image : {ex.Message}"); |
| | | } |
| | | finally |
| | | { |
| | | if (fs != null) |
| | | { |
| | | fs.Close(); |
| | | action?.Invoke(); |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | else |
| | | { |
| | | action?.Invoke(); |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | public class MyWebClient : WebClient |
| | | { |
| | | int _timeout = 10000; |
| | | |
| | | /// <summary> |
| | | /// 超时时间(毫秒) |
| | | /// </summary> |
| | | public int Timeout |
| | | { |
| | | get |
| | | { |
| | | return _timeout; |
| | | } |
| | | set |
| | | { |
| | | _timeout = value; |
| | | } |
| | | } |
| | | public MyWebClient() |
| | | { |
| | | |
| | | } |
| | | |
| | | public MyWebClient(int timeout) |
| | | { |
| | | this._timeout = timeout; |
| | | } |
| | | |
| | | protected override WebRequest GetWebRequest(Uri address) |
| | | { |
| | | var result = base.GetWebRequest(address); |
| | | result.Timeout = this._timeout; |
| | | return result; |
| | | } |
| | | } |
| | | |
| | | } |