root / DistributedBackupService / src / protocols / Delete.java
History | View | Annotate | Download (1.37 KB)
1 |
package protocols; |
---|---|
2 |
|
3 |
import server.Peer; |
4 |
import java.util.Set; |
5 |
|
6 |
import java.io.IOException; |
7 |
import java.nio.file.Files; |
8 |
import java.nio.file.Paths; |
9 |
|
10 |
|
11 |
import chunk.FileManager; |
12 |
import handlers.Message; |
13 |
|
14 |
public class Delete implements Runnable { |
15 |
|
16 |
private Peer peer;
|
17 |
private Message req;
|
18 |
private FileManager fileManager;
|
19 |
|
20 |
public Delete(Peer peer, Message req) {
|
21 |
this.peer = peer;
|
22 |
this.req = req;
|
23 |
this.fileManager = peer.getDatabase();
|
24 |
|
25 |
System.out.println("DELETE begins!"); |
26 |
} |
27 |
|
28 |
|
29 |
@Override
|
30 |
public void run() { |
31 |
String fileID;
|
32 |
String path;
|
33 |
Set<Integer> chunks; |
34 |
|
35 |
fileID = req.getFileID(); |
36 |
|
37 |
if (!fileManager.chunkExists(fileID)) {
|
38 |
System.out.println("Can not find chunks!"); |
39 |
System.exit(-1);; |
40 |
} |
41 |
|
42 |
chunks = fileManager.getFileChunksKey(fileID); |
43 |
path = peer.getPath("chunks");
|
44 |
|
45 |
for (Integer chunk : chunks) { |
46 |
try {
|
47 |
Files.delete(Paths.get(path + "/" + fileID + "/" + chunk)); |
48 |
} catch (IOException e) { |
49 |
e.printStackTrace(); |
50 |
} |
51 |
} |
52 |
|
53 |
try {
|
54 |
Files.delete(Paths.get(path + "/" + fileID));
|
55 |
} catch (IOException e) { |
56 |
e.printStackTrace(); |
57 |
} |
58 |
|
59 |
fileManager.deleteFileBackedUp(fileID); |
60 |
System.out.println("Delete successful."); |
61 |
} |
62 |
|
63 |
} |