Bearbeiten von „Datei double finder.dart“

Zur Navigation springen Zur Suche springen

Warnung: Du bist nicht angemeldet. Deine IP-Adresse wird bei Bearbeitungen öffentlich sichtbar. Melde dich an oder erstelle ein Benutzerkonto, damit Bearbeitungen deinem Benutzernamen zugeordnet werden.

Die Bearbeitung kann rückgängig gemacht werden. Bitte prüfe den Vergleich unten, um sicherzustellen, dass du dies tun möchtest, und veröffentliche dann unten deine Änderungen, um die Bearbeitung rückgängig zu machen.

Aktuelle Version Dein Text
Zeile 47: Zeile 47:
       final buffer = file2.readSync(startLength);
       final buffer = file2.readSync(startLength);
       rc = hashBuilder.convert(buffer);
       rc = hashBuilder.convert(buffer);
       startBlockCount++;
       if (calculateStartBlock) {
        startBlockCount++;
      } else {
        fullBlockCounts++;
      }
     } else {
     } else {
       fullBlockFiles++;
       fullBlockFiles++;
       final output = AccumulatorSink<Digest>();
       var output = AccumulatorSink<Digest>();
       var input = hashBuilder.startChunkedConversion(output);
       var input = hashBuilder.startChunkedConversion(output);
       try {
       try {
Zeile 59: Zeile 63:
           }
           }
           input.add(buffer);
           input.add(buffer);
           fullBlockCounts++;
           if (calculateStartBlock) {
            startBlockCount++;
          } else {
            fullBlockCounts++;
          }
         } while (true);
         } while (true);
      } finally {
         input.close();
         input.close();
        input = null;
         rc = output.events.single;
         rc = output.events.single;
      } finally {
        if (input != null) {
          input.close();
        }
        output.close();
       }
       }
     }
     }
Zeile 80: Zeile 83:
* <code>Digest rc;</code> Diese Klasse aus dem Paket <code>crypt</code> verwaltet eine Prüfsumme.
* <code>Digest rc;</code> Diese Klasse aus dem Paket <code>crypt</code> verwaltet eine Prüfsumme.
* <code>final file2 = file.openSync();</code> Die Datei wird "geöffnet", damit wird ein Zugriff auf den Inhalt der Datei möglich.
* <code>final file2 = file.openSync();</code> Die Datei wird "geöffnet", damit wird ein Zugriff auf den Inhalt der Datei möglich.
Im Fall nur Startblock:
* <code>buffer = file2.readSync(startLength);</code> Es wird ein Block aus dem Dateiinhalt gelesen.
* <code>buffer = file2.readSync(startLength);</code> Es wird ein Block aus dem Dateiinhalt gelesen, maximal <code>startLength</code> Bytes.
 
* <code>rc = hashBuilder.convert(buffer);</code> Die Prüfsumme wird aus dem Dateiinhaltsblock berechnet.
Im Fall ganzer Dateiinhalt:
* <code>final output = AccumulatorSink<Digest>();</code> Ein Objekt der Klasse <code>AccumulatorSink<Digest></code> kann mit Prüfsummen umgehen.
* <code>final input = hashBuilder.startChunkedConversion(output);</code> Die Klassenvariable <code>hashBuilder</code> ist ein Objekt, das eine Prüfsumme berechnen kann, in unserem Fall MD5.
** <code>startChunkedConversion(output)</code> liefert ein Objekt, das Prüfsummen aus Einzelblöcken berechnen kann.
* <code>do {...} while(true);</code> Eine Endlosschleife, die zwischendrin mit <code>break</code> beendet wird.
* <code>final buffer = file2.readSync(blockSize);</code> Lesen eines Blockes...
* <code>if (buffer.isEmpty())</code> Konnte nichts gelesen werden, also Dateiende erreicht?
* <code>break</code> Schleife beenden.
* <code>rc = output.events.single;</code>
* <code>input.add(buffer);</code> Block für Prüfsumme verarbeiten.
* <code>finally</code> Egal ob mit oder ohne Ausnahme (Exception):
* <code>input.close(); output.close();</code> Resourcen freigeben.


== Die Methode find() ==
== Die Methode find() ==

Bitte kopiere keine Webseiten, die nicht deine eigenen sind, benutze keine urheberrechtlich geschützten Werke ohne Erlaubnis des Urhebers!
Du gibst uns hiermit deine Zusage, dass du den Text selbst verfasst hast, dass der Text Allgemeingut (public domain) ist, oder dass der Urheber seine Zustimmung gegeben hat. Falls dieser Text bereits woanders veröffentlicht wurde, weise bitte auf der Diskussionsseite darauf hin. Bitte beachte, dass alle Info-Theke-Beiträge automatisch unter der „Gemeinfreiheit“ stehen (siehe Info-Theke:Urheberrechte für Einzelheiten). Falls du nicht möchtest, dass deine Arbeit hier von anderen verändert und verbreitet wird, dann klicke nicht auf „Seite speichern“.

Abbrechen Bearbeitungshilfe (wird in einem neuen Fenster geöffnet)