public int getNoOfBlocks() { int noOfBlocks = (int) getFileSize() / Settings.getBlockSize(); if (getFileSize() % Settings.getBlockSize() != 0) { noOfBlocks++; } return noOfBlocks; }
public File getDownloadTargetFile() throws FileNotFoundException, IOException { File file = new File(Settings.getSharedFolder() + getFileName() + Settings.getTmpExtension()); if (!file.exists() /* && getCompleteFile() == null TODO activate */) { file.createNewFile(); RandomAccessFile randomAccessFile = new RandomAccessFile(file, "rw"); randomAccessFile.setLength(getFileSize()); randomAccessFile.close(); } if (file.exists()) return file; return null; }
public String getRealFileName() { if (getFileName().endsWith(Settings.getTmpExtension())) { return getFileNameWithoutExtension(); } else { return getFileName(); } }
public String getRouterCommand() { ArrayList<String> commandArgs = new ArrayList<String>(); commandArgs.add(getRealFileName()); commandArgs.add("" + getFileSize()); commandArgs.add("" + getNoOfBlocks()); File statusFile; try { statusFile = getDownloadStatusFile(); if (statusFile == null) return ""; RandomAccessFile randomAccesStatus = new RandomAccessFile(statusFile, "r"); byte[] content = new byte[(int) randomAccesStatus.length()]; randomAccesStatus.readFully(content, 0, content.length); randomAccesStatus.close(); String stringContent = new String(content); commandArgs.add(stringContent); String command = ""; // Settings.getListStartSign(); for (String s : commandArgs) { command += s + Settings.getSplitChar(); } command = command.substring(0, command.length() - 1); // strip last // split // char command += ""; // Settings.getListStopSign(); return command; } catch (IOException e) { e.printStackTrace(); } return ""; }
public File getDownloadStatusFile() throws IOException { String fileName = Settings.getInfoFolder() + getFileName() + Settings.getInfoExtension(); File file = new File(fileName); if (!file.exists() /* && getCompleteFile() == null TODO activate */) { file.createNewFile(); RandomAccessFile randomAccessFile = new RandomAccessFile(file, "rw"); for (int i = 1; i <= getNoOfBlocks(); i++) { randomAccessFile.write((byte) '0'); } randomAccessFile.close(); } if (file.exists()) return file; return null; }
public void completeDownload() throws FileNotFoundException, IOException { if (Settings.DEBUG) { System.out.println("complete download of " + getRealFileName()); } getDownloadStatusFile().delete(); File newFileName = new File(Settings.getSharedFolder() + getRealFileName()); // delete if new file already exists if (newFileName.exists()) { if (Settings.DEBUG) { System.out.println("Going to delete downloaded file because target already exsists"); } getDownloadTargetFile().delete(); } getDownloadTargetFile().renameTo(newFileName); DownloadController.removeDownload(this); }
public File getCompleteFile() { File file = new File(Settings.getSharedFolder() + getFileName()); if (file.exists()) return file; return null; }
public int getRestSize() { return (int) (getFileSize() % Settings.getBlockSize()); }