FileHelper.cs 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. using Oreo.FileMan.DatabaseEngine;
  2. using Oreo.FileMan.Models;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.IO;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using Y.FileQueryEngine.QueryEngine;
  10. using Y.Utils.DataUtils.Collections;
  11. using Y.Utils.IOUtils.FileUtils;
  12. using Y.Utils.IOUtils.PathUtils;
  13. namespace Oreo.FileMan.Helpers
  14. {
  15. public class FileHelper
  16. {
  17. public static void GetAllFileToDb()
  18. {
  19. var drives = FileQueryEngine.GetReadyNtfsDrives().OrderByDescending(x => x.Name);
  20. if (ListTool.HasElements(drives))
  21. {
  22. foreach (var drive in drives)
  23. {
  24. var allFiles = FileQueryEngine.GetAllFiles(drive);
  25. if (ListTool.HasElements(allFiles))
  26. {
  27. using (var db = new Muse())
  28. {
  29. int addcount = 0;
  30. foreach (var file in allFiles)
  31. {
  32. if (!db.Set<Files>().Any(x => x.FullPath == file))
  33. {
  34. var a = db.Set<Files>().Add(
  35. new Files()
  36. {
  37. FullPath = file,
  38. FileName = Path.GetFileName(file),
  39. ExtName = Path.GetExtension(file),
  40. Size = FileTool.Size(file),
  41. });
  42. addcount++;
  43. }
  44. if (addcount >= 500)
  45. {
  46. addcount = 0;
  47. db.SaveChanges();
  48. }
  49. }
  50. int count = db.SaveChanges();
  51. }
  52. }
  53. }
  54. }
  55. }
  56. }
  57. }