Frage

Ich habe ein Programm geschrieben, das eine Netzwerkverbindung mit einem entfernten Computer etablish wird mit TCPClient ich bin mit Dateien auf eine Remote-.net-Anwendung in 100k Stücken übertragen und es inturn dann schreibt sie in die Festplatte. Alle Dateiübertragungen funktionieren gut, außer wenn es darum geht, Dateien ZIP - es neugierig ist zu beachten, dass die reasembled Datei immer 98K ist ... gibt es einige dunkle Geheimnis zu ZIP-Dateien, die sie daran hindern, auf diese Weise behandelt werden. Wieder alle anderen Dateiübertragungen funktionieren, Bild, xls, txt, chm, exe etc.

Confused

War es hilfreich?

Lösung

Nun, Sie haben keinen Code gezeigt, so dass es ein bisschen heikel ist, genau zu sagen, was falsch ist.

Die üblichen Fehler anzunehmen, dass Stream.Read liest alle Daten, die Sie es bitten, anstatt zu erkennen, dass es weniger lesen könnte, aber dass die Menge es wirklich Lese ist der Rückgabewert.

Mit anderen Worten, sollte der Code nicht sein:

byte[] buffer = new byte[input.Length];
input.Read(buffer, 0, buffer.Length);
output.Write(buffer, 0, buffer.Length);

aber so etwas wie:

byte[] buffer = new byte[32 * 1024];
int bytesRead;
while ( (bytesRead = input.Read(buffer, 0, buffer.Length)) > 0)
{
    output.Write(buffer, 0, bytesRead);
}

Aber das ist nur eine Vermutung. Wenn Sie einen Code schreiben könnten, würden wir eine bessere Chance, es herauszufinden, haben aus.

Andere Tipps

Der tatsächliche Code wäre hilfreich.

Sind Sie Binary / Binary mit?

(d. Daten basieren und nicht als Text basiert).

Sie könnten versuchen, eine Hex-Datei vergleichen (zB Beyond Compare ), um das Original zu vergleichen und kopieren und ob das gibt Ihnen irgendwelche Hinweise.

Es könnte sein, dass Sie (anstelle von Anhängen an), um die vorhandene Datei mit jedem Chunk überschreiben empfangen? Daher ist die endgültige Größe der Datei wird <= die Größe eines Chunk.

Aber ohne Code, es ist schwierig, den Grund für das Problem zu erklären.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top