/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 // |
/////////////////////////////////////////////////////////////////////////// |