mirror of
https://github.com/binlaab/nanofiles.git
synced 2026-07-01 18:16:29 +02:00
práctica 3, falta la última parte
This commit is contained in:
43
es/um/redes/nanoFiles/util/FileDatabase.java
Normal file
43
es/um/redes/nanoFiles/util/FileDatabase.java
Normal file
@@ -0,0 +1,43 @@
|
||||
package es.um.redes.nanoFiles.util;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author rtitos
|
||||
*
|
||||
* Utility class acting as database of local files shared by this peer.
|
||||
*/
|
||||
|
||||
public class FileDatabase {
|
||||
|
||||
private Map<String, FileInfo> files;
|
||||
|
||||
public FileDatabase(String sharedFolder) {
|
||||
File theDir = new File(sharedFolder);
|
||||
if (!theDir.exists()) {
|
||||
theDir.mkdirs();
|
||||
}
|
||||
this.files = FileInfo.loadFileMapFromFolder(new File(sharedFolder));
|
||||
if (files.size() == 0) {
|
||||
System.err.println("*WARNING: No files found in folder " + sharedFolder);
|
||||
}
|
||||
}
|
||||
|
||||
public FileInfo[] getFiles() {
|
||||
FileInfo[] fileinfoarray = new FileInfo[files.size()];
|
||||
int numFiles = 0;
|
||||
for (FileInfo f : files.values()) {
|
||||
fileinfoarray[numFiles++] = f;
|
||||
}
|
||||
return fileinfoarray;
|
||||
}
|
||||
|
||||
public String lookupFilePath(String fileHash) {
|
||||
FileInfo f = files.get(fileHash);
|
||||
if (f != null) {
|
||||
return f.filePath;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user