Ejemplo n.º 1
0
		public static void ExtractStreamToFileSystem(this Stream compressedStream, IFileSystemWriter writer)
		{
			using (var zipInputStream = new ZipInputStream(compressedStream))
			{
				foreach (var currentEntry in zipInputStream.ToList())
				{
					string entryDirectory = Path.GetDirectoryName(currentEntry.Name);
					string entryFileName = Path.GetFileName(currentEntry.Name);
					if (entryDirectory.Length > 0) writer.CreateDirectory(entryDirectory);
					if (string.IsNullOrEmpty(entryFileName)) continue;
					writer.CreateFile(zipInputStream, Path.Combine(entryDirectory, entryFileName));
				}
			}
		}
Ejemplo n.º 2
0
 public static void ExtractStreamToFileSystem(this Stream compressedStream, IFileSystemWriter writer)
 {
     using (var zipInputStream = new ZipInputStream(compressedStream))
     {
         foreach (var currentEntry in zipInputStream.ToList())
         {
             string entryDirectory = Path.GetDirectoryName(currentEntry.Name);
             string entryFileName  = Path.GetFileName(currentEntry.Name);
             if (entryDirectory.Length > 0)
             {
                 writer.CreateDirectory(entryDirectory);
             }
             if (string.IsNullOrEmpty(entryFileName))
             {
                 continue;
             }
             writer.CreateFile(zipInputStream, Path.Combine(entryDirectory, entryFileName));
         }
     }
 }
Ejemplo n.º 3
0
        /// <summary>
        /// Copies all files and directories to the specified file system.
        /// </summary>
        /// <param name="sourceFileSystem">The file system to query.</param>
        /// <param name="destinationFileSystem">The file system to copy to.</param>
        public static void CopyAllTo( this IFileSystemReader sourceFileSystem, IFileSystemWriter destinationFileSystem )
        {
            Ensure.Debug(sourceFileSystem, f => f.NotNull());
            Ensure.That(destinationFileSystem).NotNull();

            foreach( var dir in sourceFileSystem.GetDirectoryNamesRecursively() )
                destinationFileSystem.CreateDirectory(dir);

            foreach( var file in sourceFileSystem.GetFileNamesRecursively() )
            {
                var sourceStream = sourceFileSystem.ReadBinary(file);
                var destinationStream = destinationFileSystem.CreateNewBinary(file, overwriteIfExists: true);
                sourceStream.CopyTo(destinationStream);
                sourceStream.Close();
                destinationStream.Close();
            }
        }