Posso fare affidamento sui primi pochi byte di dati compressi utilizzando System.IO.Compression.DeflateStream in .NET sempre uguale?Come posso sapere se un array di byte è già stato compresso?
Questi byte sembrano essere sempre il 1 ° byte: 237, 189, 7, 96, 28, 73, 150, 37, 38, 47, ...
sto assumendo questo è sorta di intestazione, mi piacerebbe presumere che questa intestazione sia fissa e non cambierà.
Qualcuno ha qualche informazione in più su questo?
informazioni Background (Il motivo che voglio sapere questa informazione è ...)
Ho un carico di dati in una tabella di database che potrebbe fare con l'essere reso più piccolo. Ho deciso che inizierò a comprimere i dati e non mi preoccuperò di comprimere i dati esistenti. Quando i dati entrano nel mio codice .NET, i dati sono una stringa.
Mi piacerebbe essere in grado di guardare i primi pochi byte della stringa e vedere se è stato compresso, se ha quindi ho bisogno di decomprimere.
Inizialmente pensavo di poter convertire la stringa in byte e provare semplicemente a decomprimere i dati. Quindi, se si verifica un'eccezione, posso solo supporre che non sia stata compressa. Ma penso che il controllo dei byte di intestazione mi darebbe prestazioni molto migliori.
Molte grazie, Mike G
Grazie, penso che andrò per questo, buon pensiero laterale! (Non sto ancora utilizzando NET 4 quindi l'altra risposta non è utilizzabile per me) – MikeG