protected static long getTorrentDataSizeFromFileOrDirSupport(File file) { String name = file.getName(); if (name.equals(".") || name.equals("..")) { return (0); } if (!file.exists()) { return (0); } if (file.isFile()) { return (file.length()); } else { File[] dir_files = file.listFiles(); long length = 0; for (int i = 0; i < dir_files.length; i++) { length += getTorrentDataSizeFromFileOrDirSupport(dir_files[i]); } return (length); } }
protected TOTorrentCreateImpl( File _torrent_base, URL _announce_url, boolean _add_other_hashes, long _piece_length) throws TOTorrentException { super(_torrent_base.getName(), _announce_url, _torrent_base.isFile()); torrent_base = _torrent_base; piece_length = _piece_length; add_other_hashes = _add_other_hashes; }
protected long getTotalFileSizeSupport(File file) throws TOTorrentException { String name = file.getName(); ///////////////////////////////////////// ///////////////////////////////////// if (name.equals(".") || name.equals("..")) { return (0); } if (!file.exists()) { throw (new TOTorrentException( "TOTorrentCreate: file '" + file.getName() + "' doesn't exist", TOTorrentException.RT_FILE_NOT_FOUND)); } if (file.isFile()) { if (!ignoreFile(name)) { total_file_count++; return (file.length()); } else { return (0); } } else { File[] dir_files = file.listFiles(); if (dir_files == null) { throw (new TOTorrentException( "TOTorrentCreate: directory '" + file.getAbsolutePath() + "' returned error when listing files in it", TOTorrentException.RT_FILE_NOT_FOUND)); } long length = 0; for (int i = 0; i < dir_files.length; i++) { length += getTotalFileSizeSupport(dir_files[i]); } return (length); } }
protected TOTorrentCreateImpl( File _torrent_base, URL _announce_url, boolean _add_other_hashes, long _piece_min_size, long _piece_max_size, long _piece_num_lower, long _piece_num_upper) throws TOTorrentException { super(_torrent_base.getName(), _announce_url, _torrent_base.isFile()); torrent_base = _torrent_base; add_other_hashes = _add_other_hashes; long total_size = calculateTotalFileSize(_torrent_base); piece_length = getComputedPieceSize( total_size, _piece_min_size, _piece_max_size, _piece_num_lower, _piece_num_upper); }