Program.cs 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. using Azure.Storage.Blobs;
  2. using Azure.Storage.Blobs.Models;
  3. using Azure.Storage.Blobs.Specialized;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Drawing;
  7. using System.IO;
  8. using System.Linq;
  9. using System.Text;
  10. using System.Threading.Tasks;
  11. namespace BlobDownload
  12. {
  13. public class Program
  14. {
  15. static bool IsNumeric(string str)
  16. {
  17. System.Text.RegularExpressions.Regex reg1 = new System.Text.RegularExpressions.Regex(@"^[-]?\d+[.]?\d*$");
  18. return reg1.IsMatch(str);
  19. }
  20. static async Task Main(string[] args)
  21. {
  22. var prs = new Aspose.Slides.Presentation(@"C:\Users\CrazyIter\Desktop\6.2.3平面图形的认识与测量(三)(3).pptx");
  23. prs.Save(@"C:\Users\CrazyIter\Desktop\output.Gif", Aspose.Slides.Export.SaveFormat.Gif);
  24. string reg1 = "123aewe";
  25. string reg2 = "858";
  26. string reg3 = "858=";
  27. string reg4 = "aa858=";
  28. string reg5 = "83edd58=";
  29. Console.WriteLine(IsNumeric(reg1));
  30. Console.WriteLine(IsNumeric(reg2));
  31. Console.WriteLine(IsNumeric(reg3));
  32. Console.WriteLine(IsNumeric(reg4));
  33. Console.WriteLine(IsNumeric(reg5));
  34. string base64 = "/base64.txt";
  35. StreamReader sr = new StreamReader(base64, Encoding.Default);
  36. StringBuilder content = new StringBuilder();
  37. string line;
  38. while ((line = sr.ReadLine()) != null)
  39. {
  40. content.Append(line);
  41. }
  42. byte[] bytes = Convert.FromBase64String(content.ToString());
  43. Stream stream = new MemoryStream(bytes);
  44. // MemoryStream memoryStream = new MemoryStream();
  45. System.Drawing.Bitmap inFile = new System.Drawing.Bitmap(stream);
  46. Graphics graphics = Graphics.FromImage(inFile);
  47. graphics.Save();
  48. graphics.Dispose();
  49. inFile.Save("test.png", System.Drawing.Imaging.ImageFormat.Png);
  50. //byte[] arr = new byte[memoryStream.Length];
  51. //memoryStream.Position = 0;
  52. //memoryStream.Read(arr, 0, (int)memoryStream.Length);
  53. //memoryStream.Close();
  54. //memoryStream.Dispose();
  55. /*
  56. string StorageAccountConnectionString = "DefaultEndpointsProtocol=https;AccountName=teammodelstorage;AccountKey=Yq7D4dE6cFuer2d2UZIccTA/i0c3sJ/6ITc8tNOyW+K5f+/lWw9GCos3Mxhj47PyWQgDL8YbVD63B9XcGtrMxQ==;EndpointSuffix=core.chinacloudapi.cn";
  57. BlobServiceClient blobServiceClient = new BlobServiceClient(StorageAccountConnectionString);
  58. BlobContainerClient blobContainerClient = new BlobContainerClient(StorageAccountConnectionString, "hbcn");
  59. //BlobClient blob = blobContainerClient.GetBlobClient("res/PRD-20191015001/index.json");
  60. //await blob.DownloadToAsync(@"D:\VisualStudioProjects\TEAMModelOS\BlobDownload\download\index.json");
  61. string downloadpath = "F:/download";
  62. HashSet<string> pathset = new HashSet<string>();
  63. List<string> items = new List<string>();
  64. int count = 0;
  65. await foreach (BlobItem item in blobContainerClient.GetBlobsAsync(BlobTraits.None, BlobStates.None, "res/PRD-20191015002"))
  66. {
  67. string path = Path.Combine(downloadpath, item.Name);
  68. var paths= path.Split("/");
  69. StringBuilder stringBuilder = new StringBuilder();
  70. for (int i = 0; i < paths.Length-1; i++) {
  71. stringBuilder.Append($"{paths[i]}/");
  72. }
  73. pathset.Add(stringBuilder.ToString());
  74. count++;
  75. items.Add(item.Name);
  76. }
  77. foreach (var path in pathset) {
  78. if (!Directory.Exists(path)) {
  79. Directory.CreateDirectory(path);
  80. }
  81. }
  82. List<Task> tasks = new List<Task>();
  83. long start= DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();
  84. foreach (var item in items)
  85. {
  86. BlobClient blob = blobContainerClient.GetBlobClient(item);
  87. string path = Path.Combine(downloadpath, item);
  88. tasks.Add(blob.DownloadToAsync(path));
  89. }
  90. await Task.WhenAll(tasks);
  91. long end = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();
  92. Console.WriteLine($"文件个数:{count};下载时间:{end-start}毫秒");
  93. */
  94. }
  95. }
  96. }