wasSharp

Subversion Repositories:
Compare Path: Rev
With Path: Rev
?path1? @ 23  →  ?path2? @ 24
/IO.cs
@@ -6,8 +6,10 @@
 
using System.Collections.Generic;
using System.IO;
using System.IO.Compression;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace wasSharp
{
@@ -37,6 +39,90 @@
.Aggregate(fileName, (current, c) => current.Replace(c.ToString(), string.Empty));
}
 
public static async Task DeflateCompress(this Stream uncompressedSourceStream,
Stream compressedDestinationStream, bool leaveOpen = false)
{
using (
var compressionStream = new DeflateStream(compressedDestinationStream, CompressionMode.Compress,
leaveOpen))
{
await uncompressedSourceStream.CopyToAsync(compressionStream);
}
}
 
public static async Task DeflateDecompress(this Stream compressedSourceStream,
Stream uncompressedDestinationStream, bool leaveOpen = false)
{
using (
var decompressionStream = new DeflateStream(compressedSourceStream, CompressionMode.Decompress,
leaveOpen))
{
await decompressionStream.CopyToAsync(uncompressedDestinationStream);
}
}
 
public static async Task GZipCompress(this Stream uncompressedSourceStream, Stream compressedDestinationStream,
bool leaveOpen = false)
{
using (
var compressionStream = new GZipStream(compressedDestinationStream, CompressionMode.Compress, leaveOpen)
)
{
await uncompressedSourceStream.CopyToAsync(compressionStream);
}
}
 
public static async Task GZipDecompress(this Stream compressedSourceStream, Stream uncompressedDestinationStream,
bool leaveOpen = false)
{
using (
var decompressionStream = new GZipStream(compressedSourceStream, CompressionMode.Decompress, leaveOpen))
{
await decompressionStream.CopyToAsync(uncompressedDestinationStream);
}
}
 
public static string MimeType(string fileName, char extensionSeparator = '.')
{
switch (fileName.Split('.').Last().ToUpperInvariant())
{
case "AVI":
return "video/x-msvideo";
case "CSS":
return "text/css";
case "DOC":
return "application/msword";
case "GIF":
return "image/gif";
case "HTM":
case "HTML":
return "text/html";
case "JPG":
case "JPEG":
return "image/jpeg";
case "JS":
return "application/x-javascript";
case "MP3":
return "audio/mpeg";
case "PNG":
return "image/png";
case "PDF":
return "application/pdf";
case "PPT":
return "application/vnd.ms-powerpoint";
case "ZIP":
return "application/zip";
case "TXT":
return "text/plain";
case "XML":
return "text/xml";
case "SQLITE":
return "application/x-sqlite3";
default:
return "application/octet-stream";
}
}
 
///////////////////////////////////////////////////////////////////////////
// Copyright (C) 2016 Wizardry and Steamworks - License: GNU GPLv3 //
///////////////////////////////////////////////////////////////////////////