fileUtils.js 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. "use strict";
  2. var __importDefault = (this && this.__importDefault) || function (mod) {
  3. return (mod && mod.__esModule) ? mod : { "default": mod };
  4. };
  5. Object.defineProperty(exports, "__esModule", { value: true });
  6. exports.deleteFile = exports.getFileSize = exports.verifyMD5 = exports.generateMD5 = void 0;
  7. const fs_1 = __importDefault(require("fs"));
  8. const crypto_1 = __importDefault(require("crypto"));
  9. const generateMD5 = (filePath) => {
  10. return new Promise((resolve, reject) => {
  11. const hash = crypto_1.default.createHash('md5');
  12. const stream = fs_1.default.createReadStream(filePath);
  13. stream.on('error', reject);
  14. stream.on('data', (chunk) => {
  15. hash.update(chunk);
  16. });
  17. stream.on('end', () => {
  18. const md5sum = hash.digest('hex');
  19. resolve(md5sum);
  20. });
  21. });
  22. };
  23. exports.generateMD5 = generateMD5;
  24. const verifyMD5 = async (filePath, expectedMD5) => {
  25. try {
  26. const actualMD5 = await (0, exports.generateMD5)(filePath);
  27. return actualMD5 === expectedMD5;
  28. }
  29. catch (error) {
  30. console.error('验证MD5失败:', error);
  31. return false;
  32. }
  33. };
  34. exports.verifyMD5 = verifyMD5;
  35. const getFileSize = (filePath) => {
  36. try {
  37. const stats = fs_1.default.statSync(filePath);
  38. return stats.size;
  39. }
  40. catch (error) {
  41. console.error('获取文件大小失败:', error);
  42. return 0;
  43. }
  44. };
  45. exports.getFileSize = getFileSize;
  46. const deleteFile = (filePath) => {
  47. try {
  48. fs_1.default.unlinkSync(filePath);
  49. return true;
  50. }
  51. catch (error) {
  52. console.error('删除文件失败:', error);
  53. return false;
  54. }
  55. };
  56. exports.deleteFile = deleteFile;
  57. //# sourceMappingURL=fileUtils.js.map