mirror of
https://github.com/binlaab/nanofiles.git
synced 2026-07-01 19:46:30 +02:00
44 lines
940 B
Java
44 lines
940 B
Java
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;
|
|
}
|
|
}
|