From 53c65de717e4724c4977c611f3cd05d9697bac72 Mon Sep 17 00:00:00 2001 From: tonikelope Date: Mon, 5 Aug 2024 19:14:09 +0200 Subject: [PATCH] https://github.com/tonikelope/megabasterd/issues/647 FIX File split/merge sha1 removed --- .../megabasterd/FileSplitterDialog.java | 34 ++++--------------- .../tonikelope/megabasterd/MainPanelView.java | 2 ++ 2 files changed, 8 insertions(+), 28 deletions(-) diff --git a/src/main/java/com/tonikelope/megabasterd/FileSplitterDialog.java b/src/main/java/com/tonikelope/megabasterd/FileSplitterDialog.java index 6017098be..59211e966 100644 --- a/src/main/java/com/tonikelope/megabasterd/FileSplitterDialog.java +++ b/src/main/java/com/tonikelope/megabasterd/FileSplitterDialog.java @@ -41,7 +41,6 @@ public class FileSplitterDialog extends javax.swing.JDialog { private final MainPanel _main_panel; private File[] _files = null; private File _output_dir = null; - private volatile String _sha1 = null; private volatile long _progress = 0L; private volatile Path _current_part = null; private volatile int _current_file = 0; @@ -86,17 +85,6 @@ public class FileSplitterDialog extends javax.swing.JDialog { private boolean _splitFile(int i) throws IOException { - _sha1 = ""; - - THREAD_POOL.execute(() -> { - - try { - _sha1 = MiscTools.computeFileSHA1(new File(_files[i].getAbsolutePath())); - } catch (IOException ex) { - Logger.getLogger(FileSplitterDialog.class.getName()).log(Level.SEVERE, null, ex); - } - }); - this._progress = 0L; int mBperSplit = Integer.parseInt(this.split_size_text.getText()); @@ -135,20 +123,6 @@ public class FileSplitterDialog extends javax.swing.JDialog { } } - while ("".equals(_sha1)) { - MiscTools.GUIRunAndWait(() -> { - - split_button.setText(LabelTranslatorSingleton.getInstance().translate("GENERATING SHA1, please wait...")); - - }); - - MiscTools.pausar(1000); - } - - if (_sha1 != null) { - Files.writeString(Paths.get(this._files[i].getAbsolutePath() + ".sha1"), _sha1); - } - return true; } @@ -195,9 +169,13 @@ public class FileSplitterDialog extends javax.swing.JDialog { monitorProgress(f, byteSize); if (!_exit) { + long dest_bytes_copied = Files.exists(fileName) ? Files.size(fileName) : 0; + try (RandomAccessFile toFile = new RandomAccessFile(fileName.toFile(), "rw"); FileChannel toChannel = toFile.getChannel()) { - sourceChannel.position(position); - toChannel.transferFrom(sourceChannel, 0, byteSize); + while (dest_bytes_copied < byteSize) { + sourceChannel.position(position + dest_bytes_copied); + dest_bytes_copied += toChannel.transferFrom(sourceChannel, dest_bytes_copied, byteSize - dest_bytes_copied); + } } } diff --git a/src/main/java/com/tonikelope/megabasterd/MainPanelView.java b/src/main/java/com/tonikelope/megabasterd/MainPanelView.java index ca1fd22fa..d467e9e21 100644 --- a/src/main/java/com/tonikelope/megabasterd/MainPanelView.java +++ b/src/main/java/com/tonikelope/megabasterd/MainPanelView.java @@ -276,6 +276,8 @@ public final class MainPanelView extends javax.swing.JFrame { if (dialog.getUpload_log_checkbox().isSelected()) { + MiscTools.createUploadLogDir(); + File upload_log = new File(MiscTools.UPLOAD_LOGS_DIR + "/megabasterd_upload_" + parent_node + ".log"); upload_log.createNewFile();