2014-11-12 2 views
0

서버의 HttpWebRequest에서 보낼 파일을 압축해야합니다. C#의 외부 클래스를 사용하려고 시도하지만 Universal Apps에서는 작동하지 않습니다. 내가 유니버설 응용 프로그램에서 사용할 수있는 원래의 클래스와이 시도하고이 내 코드입니다 :파일 압축 또는 압축 - Windows Phone Universal Apps - C#

//SycroZipFile and UploadFile are StorageFile type. 
using (Stream writeStream = await SyncroZipFile.OpenStreamForWriteAsync()) 
{ 
    using (Stream readStream = await UploadFile.OpenStreamForReadAsync()) 
    { 
     await readStream.CopyToAsync(writeStream); 
    } 
} 

그러나 ZipFile를가 손상되어 작동하지 않습니다, 하나는 윈도우 폰 범용의 압축 파일 나를 도울 수 앱? 고마워, 제 영어에 대해 미안 하 고 미리 감사드립니다!

+0

쓰기 스트림을 닫기 전에 플러시해야한다고 생각합니다. 'writeStream.Flush();' – Sjips

+0

마지막으로 코드를 사용할 때이 스트림을 파기하면 stream.flush() 및 stream.close()!가 적용됩니다! 감사합니다 : D –

+0

'using' 실제로 스트림을 닫지 만 (항상) 플러시하지 않습니다! 때로는'Flush()'에 대한 명시 적 호출이 필요합니다 ... 그러나 이미 그것을 해결했는지보십시오. 항상 좋다. – Sjips

답변

0

마지막으로 내 문제를 해결할 수 있습니다! 당신이 윈도우 폰 유니버설 앱의 프로그래머라면 당신은 유니버설 앱에서 사용할 수있는 Visual에서 원래 클래스 내 코드를 사용할 수 있습니다하는 파일을 압축하기 위해 외부 클래스와 문제가 : 완벽

//The UploadFile and SyncroZipFile are StorageFile's. 
using (Stream StreamToUploadFile = await UploadFile.OpenStreamForWriteAsync()) 
{ 
    using (Stream StreamToSyncroZipFile = await SyncroZipFile.OpenStreamForWriteAsync()) 
    { 
     using (ZipArchive UploadFileCompressed = new ZipArchive(StreamToSyncroZipFile, ZipArchiveMode.Update)) 
     { 
      ZipArchiveEntry NewZipEntry = UploadFileCompressed.CreateEntry(UploadFileName); 

      using (Stream SWriter = NewZipEntry.Open()) 
      { 
       await StreamToUploadFile.CopyToAsync(SWriter); 
      } 
     } 
    } 
} 

이 코드 작업을 내, 그리고 마지막으로 내 ZipArchive 그것은 부패하지 않아 나는 그것을 열 수있다! 행운을 빕니다!