Poniższy kod służy do pobierania pliku zip i rozpakowania go na telefonie.Czy ktoś wie o tym błędzie: "Zły lokalny podpis nagłówka: 0x6D74683C"?
Ten sam kod używany do pracy na WP7, zacząłem testowane na urządzeniu WP8, a dzieje się coś dziwnego ... teraz działa na WP8 ale NIE na WP7 więcej.
Na WP7 to daje ERROR:
Wrong Local header signature: 0x6D74683C
Może ktoś mi powiedzieć co się dzieje tutaj?
obserwacja (2 dni po zaksięgowaniu pytanie)
Mam kilka uwag .... Dzielenie się tutaj szczegółowo (Image format) lub (Excel format)
KODEKS
using ICSharpCode.SharpZipLib.Zip;
using System;
using System.Diagnostics;
using System.IO;
using System.IO.IsolatedStorage;
using System.Net;
namespace iq_main.Network
{
public class IQ_Download
{
private string zipFilePassword = String.Empty;
private string fileNameToBeStoredAs = String.Empty;
private string urlToBeDownloaded = String.Empty;
private HttpWebResponse response;
public void Download(string _urlToBeDownloaded = GlobalConstants.DownloadLanguageConfigurationUrl, string _fileNameToBeStoredAs = GlobalConstants.DownloadLanguageConfigurationXmlFilename, string _zipFilePassword = GlobalConstants.DownloadZipsPassword)
{
urlToBeDownloaded = _urlToBeDownloaded;
fileNameToBeStoredAs = _fileNameToBeStoredAs;
zipFilePassword = _zipFilePassword;
System.Uri targetUri = new System.Uri(urlToBeDownloaded);
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(targetUri);
request.BeginGetResponse(new AsyncCallback(WebRequestCallBack), request);
}
void WebRequestCallBack(IAsyncResult result)
{
HttpWebRequest resultInfo = (HttpWebRequest)result.AsyncState;
response = (HttpWebResponse)resultInfo.EndGetResponse(result);
try
{
using (StreamReader httpwebStreamReader = new StreamReader(response.GetResponseStream()))
{
//open isolated storage to save files
using (IsolatedStorageFile isoStore = IsolatedStorageFile.GetUserStoreForApplication())
{
using (ZipInputStream s = new ZipInputStream(httpwebStreamReader.BaseStream))
{
if (zipFilePassword != String.Empty)
s.Password = zipFilePassword;//if archive is encrypted
ZipEntry theEntry;
try
{
//EXCEPTION OCCURS ON THE VERY NEXT LINE (while...)
while ((theEntry = s.GetNextEntry()) != null)
{
string directoryName = Path.GetDirectoryName(theEntry.Name);
string fileName = Path.GetFileName(theEntry.Name);
fileName = fileNameToBeStoredAs;
// create directory
if (directoryName.Length > 0)
{
isoStore.CreateDirectory(directoryName);
//Directory.CreateDirectory(directoryName);
}
if (fileName != String.Empty)
{
//save file to isolated storage
using (BinaryWriter streamWriter =
new BinaryWriter(new IsolatedStorageFileStream(theEntry.Name,
FileMode.Create, FileAccess.Write, FileShare.Write, isoStore)))
{
int size = 2048;
byte[] data = new byte[2048];
while (true)
{
size = s.Read(data, 0, data.Length);
if (size > 0)
streamWriter.Write(data, 0, size);
else
break;
}
}
}
}
}
catch (ZipException ze)
{
Debug.WriteLine(ze.Message);
}
}
}
}
} //try
catch (Exception ex)
{
Debug.WriteLine(ex.Message);
}
}//WebRequestCallBack Method */
} //Class ends
}
STAN WYJŚCIOWY
Step into: Stepping over method without symbols 'string.operator !='
Step into: Stepping over method without symbols 'ICSharpCode.SharpZipLib.Zip.ZipInputStream.Password.set'
Step into: Stepping over method without symbols 'string.operator !='
Step into: Stepping over method without symbols 'ICSharpCode.SharpZipLib.Zip.ZipInputStream.Password.set'
Step into: Stepping over method without symbols 'ICSharpCode.SharpZipLib.Zip.ZipInputStream.GetNextEntry'
A first chance exception of type 'ICSharpCode.SharpZipLib.Zip.ZipException' occurred in SharpZipLib.WindowsPhone7.dll
Step into: Stepping over method without symbols 'System.Exception.Message.get'
Step into: Stepping over method without symbols 'System.Diagnostics.Debug.WriteLine'
Wrong Local header signature: 0x6D74683C
A first chance exception of type 'ICSharpCode.SharpZipLib.Zip.ZipException' occurred in SharpZipLib.WindowsPhone7.dll
Wrong Local header signature: 0x6D74683C
można pisać cały stos wyjątek, bo myślę błąd ma coś todo z plikiem zip. Czy Twój wyjątek zaczyna się od ICSharpCode.SharpZipLib.Zip.ZipException? – MUG4N
dodał dane wyjściowe. – wafers
Utworzony zip z WINRAR-64 i WINRAR-32-bitowy. To nie pomogło – wafers