} else if (dinfo.getRange()) {
// range download? try to resume download from last
// position
if (targetFile.exists() && targetFile.length() != dinfo.getCount())
targetFile = null;
direct = new DirectRange(dinfo, targetFile);
} else {
// single download? overwrite file
direct = new DirectSingle(dinfo, targetFile);
}