MCPcopy Create free account
hub / github.com/MCSManager/MCSManager / isMultiVolume

Function isMultiVolume

daemon/src/service/seven_zip_service.ts:26–57  ·  view source on GitHub ↗
(filePath: string)

Source from the content-addressed store, hash-verified

24 * RAR multi-volume naming: archive.part1.rar, archive.part2.rar or archive.rar, archive.r00, archive.r01, etc.
25 */
26export function isMultiVolume(filePath: string): boolean {
27 const dir = path.dirname(filePath);
28 const fullName = path.basename(filePath);
29 const ext = path.extname(filePath).toLowerCase();
30
31 if (ext === ".zip") {
32 const baseName = path.basename(filePath, ".zip");
33 const firstVolumeFile = path.join(dir, baseName + ".z01");
34 return existsSync(firstVolumeFile);
35 }
36
37 if (ext === ".7z") {
38 const baseName = path.basename(filePath, ".7z");
39 const firstVolumeFile = path.join(dir, baseName + ".7z.001");
40 return existsSync(firstVolumeFile);
41 }
42
43 if (ext === ".rar") {
44 const baseName = path.basename(filePath, ".rar");
45
46 if (fullName.includes(".part1.rar")) {
47 const partBaseName = fullName.replace(".part1.rar", "");
48 const secondPartFile = path.join(dir, partBaseName + ".part2.rar");
49 return existsSync(secondPartFile);
50 }
51
52 const firstVolumeFile = path.join(dir, baseName + ".r00");
53 return existsSync(firstVolumeFile);
54 }
55
56 return false;
57}
58
59/**
60 * Get file extension for error messages

Callers 1

tryUnzipFunction · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected