當前位置: 首頁>>代碼示例>>C#>>正文


C# Compression.ZipArchiveEntry類代碼示例

本文整理匯總了C#中System.IO.Compression.ZipArchiveEntry的典型用法代碼示例。如果您正苦於以下問題:C# ZipArchiveEntry類的具體用法?C# ZipArchiveEntry怎麽用?C# ZipArchiveEntry使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。


ZipArchiveEntry類屬於System.IO.Compression命名空間,在下文中一共展示了ZipArchiveEntry類的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的C#代碼示例。

示例1: AddUpdateDeleteInventories

        private static void AddUpdateDeleteInventories(ZipArchiveEntry inventoriesEntry)
        {
            Console.WriteLine("inventories.csv is {0} bytes", inventoriesEntry.Length);
            IEnumerable<Inventory> inventories = null;

            using (var entryStream = inventoriesEntry.Open())
            {
                Console.WriteLine("Starting inventories at {0:hh:mm:ss.fff}", DateTime.Now);
                var stopwatch = new Stopwatch();
                stopwatch.Start();

                var reader = new StreamReader(entryStream);
                var csv = new CsvReader(reader);
                csv.Configuration.RegisterClassMap(new InventoryMap());
                StringBuilder invForImport = new StringBuilder();
                inventories = csv.GetRecords<Inventory>().Where(i => !i.IsDead);

                var inventoryCollection = new InventoryCollection();
                inventoryCollection.SetItems(inventories);
                var importer = new NpgsqlBulkImporter(ConfigurationManager.ConnectionStrings["spurious"].ConnectionString, stopwatch);
                importer.BulkImport("inventories", inventoryCollection);

                stopwatch.Stop();
                Console.WriteLine("Finished inventories at {0:hh:mm:ss.fff}, taking {1}", DateTime.Now, stopwatch.Elapsed);
            }
        }
開發者ID:claq2,項目名稱:Spurious,代碼行數:26,代碼來源:Program.cs

示例2: AreHashEqual

 private static bool AreHashEqual(FileInfo existing, ZipArchiveEntry duplicate)
 {
     byte[] originalHash;
     byte[] otherHash;
     try
     {
         using (FileStream original = File.Open(existing.FullName, FileMode.Open, FileAccess.Read))
         {
             if (null == (originalHash = HashFile(original))) { return false; }
         }
         using (Stream other = duplicate.Open())
         {
             if (null == (otherHash = HashFile(other))) { return false; }
         }
         if (originalHash.Length == otherHash.Length)
         {
             for (int index = 0; index < originalHash.Length; index++)
             {
                 if (originalHash[index] != otherHash[index])
                 {
                     WriteError("Hashes don't match.");
                     return false;
                 }
             }
             return true;
         }
         return false;
     }
     catch (Exception e)
     {
         WriteError("Error while trying to compare hash. Error {0}",
             e.Message);
         return false;
     }
 }
開發者ID:BlueSkeye,項目名稱:ApkRe,代碼行數:35,代碼來源:Program.cs

示例3: Process

 internal static string Process(ZipArchiveEntry packageFile, IMSBuildNuGetProjectSystem msBuildNuGetProjectSystem)
 {
     using (var stream = packageFile.Open())
     {
         return Process(stream, msBuildNuGetProjectSystem, throwIfNotFound: false);
     }
 }
開發者ID:pabomex,項目名稱:NuGet.PackageManagement,代碼行數:7,代碼來源:PreProcessor.cs

示例4: WriteZipArchiveEntry

 static void WriteZipArchiveEntry(ZipArchiveEntry entry, string toWrite)
 {
     using (StreamWriter writer = new StreamWriter(entry.Open()))
     {
         writer.Write(toWrite);
     }
 }
開發者ID:GoogleFrog,項目名稱:Zero-K-Infrastructure,代碼行數:7,代碼來源:MissionUpdater.cs

示例5: BuildZipFile

        /// <summary>
        /// Builds the zip file.
        /// </summary>
        /// <param name="updatesDirectory">The updates directory.</param>
        /// <param name="folderName">Name of the folder.</param>
        /// <param name="zipArchive">The zip archive.</param>
        /// <param name="zipArchiveEntry">The zip archive entry.</param>
        public void BuildZipFile(
            string updatesDirectory, 
            string folderName, 
            ZipArchive zipArchive, 
            ZipArchiveEntry zipArchiveEntry)
        {
            ////TraceService.WriteLine("ZipperService::BuildZipFile");

            string fullName = zipArchiveEntry.FullName;

            ////TraceService.WriteLine("Processing " + fullName);

            if (fullName.ToLower().StartsWith(folderName.ToLower()) &&
                fullName.ToLower().EndsWith(".dll"))
            {
                //// we have found one of the assemblies
                TraceService.WriteLine("Found assembley " + fullName);

                //// first look to see if we have a replacement
                string newFilePath = updatesDirectory + @"\" + zipArchiveEntry.Name;

                bool exists = this.fileSystem.File.Exists(newFilePath);

                if (exists)
                {
                    this.UpdateFile(zipArchive, zipArchiveEntry, fullName, newFilePath);
                }
                else
                {
                    TraceService.WriteLine(newFilePath + " does not exist");
                }
            }
        }
開發者ID:RobGibbens,項目名稱:NinjaCoderForMvvmCross,代碼行數:40,代碼來源:ZipperService.cs

示例6: PackageEntry

 public PackageEntry(ZipArchiveEntry zipArchiveEntry)
 {
     FullName = zipArchiveEntry.FullName;
     Name = zipArchiveEntry.Name;
     Length = zipArchiveEntry.Length;
     CompressedLength = zipArchiveEntry.CompressedLength;
 }
開發者ID:jinujoseph,項目名稱:NuGet.Services.Metadata,代碼行數:7,代碼來源:PackageEntriesStage.cs

示例7: ParseRouteCSV

        /// <summary>
        /// Reads a ZipArchive entry as the routes CSV and extracts the route colors.
        /// </summary>
        private static List<GoogleRoute> ParseRouteCSV(ZipArchiveEntry entry)
        {
            var routes = new List<GoogleRoute>();

            using (var reader = new StreamReader(entry.Open()))
            {
                // Ignore the format line
                reader.ReadLine();

                while (!reader.EndOfStream)
                {
                    var parts = reader.ReadLine().Split(',');

                    // Ignore all routes which aren't part of CTS and thus don't have any real-time data.
                    if (parts[0].Contains("ATS") || parts[0].Contains("PC") || parts[0].Contains("LBL"))
                    {
                        continue;
                    }

                    routes.Add(new GoogleRoute(parts));
                }
            }

            return routes;
        }
開發者ID:RikkiGibson,項目名稱:Corvallis-Bus-Server,代碼行數:28,代碼來源:GoogleTransitClient.cs

示例8: AddUpdateDeleteStores

        private static void AddUpdateDeleteStores(ZipArchiveEntry entry)
        {
            IEnumerable<Store> stores = null;

            using (var entryStream = entry.Open())
            {
                Console.WriteLine("stores.csv is {0} bytes", entry.Length);
                Console.WriteLine("Starting stores at {0:hh:mm:ss.fff}", DateTime.Now);
                var storeTimer = new Stopwatch();
                storeTimer.Start();
                var reader = new StreamReader(entryStream);
                var csv = new CsvReader(reader);
                csv.Configuration.RegisterClassMap(new StoreMap());
                stores = csv.GetRecords<Store>().Where(s => !s.IsDead);

                var storesCollection = new StoreCollection();
                storesCollection.SetItems(stores);
                var importer = new NpgsqlBulkImporter(ConfigurationManager.ConnectionStrings["spurious"].ConnectionString, storeTimer);
                importer.BulkImport("stores", storesCollection);

                using (var wrapper = new NpgsqlConnectionWrapper(ConfigurationManager.ConnectionStrings["spurious"].ConnectionString))
                {
                    wrapper.Connection.Open();
                    var rowsGeoUpdated = wrapper.ExecuteNonQuery("update stores s set (location) = ((select ST_SetSRID(ST_MakePoint(longitude, latitude), 4326) from stores ss where s.id = ss.id))");
                    Console.WriteLine($"Updated {rowsGeoUpdated} rows geo data from lat/long data");
                }

                storeTimer.Stop();
                Console.WriteLine("Finished stores at {0:hh:mm:ss.fff}, taking {1}", DateTime.Now, storeTimer.Elapsed);
            }
        }
開發者ID:claq2,項目名稱:Spurious,代碼行數:31,代碼來源:Program.cs

示例9: UnzipZipArchiveEntryAsync

        /// <summary>
        /// Unzips ZipArchiveEntry asynchronously.
        /// </summary>
        /// <param name="entry">The entry which needs to be unzipped</param>
        /// <param name="filePath">The entry's full name</param>
        /// <param name="unzipFolder">The unzip folder</param>
        /// <returns></returns>
        private static async Task UnzipZipArchiveEntryAsync(ZipArchiveEntry entry, string filePath, StorageFolder unzipFolder)
        {
            if (IfPathContainDirectory(filePath))
            {
                // Create sub folder
                string subFolderName = Path.GetDirectoryName(filePath);

                bool isSubFolderExist = await IfFolderExistsAsync(unzipFolder, subFolderName);

                StorageFolder subFolder;

                if (!isSubFolderExist)
                {
                    // Create the sub folder.
                    subFolder =
                        await unzipFolder.CreateFolderAsync(subFolderName, CreationCollisionOption.ReplaceExisting);
                }
                else
                {
                    // Just get the folder.
                    subFolder =
                        await unzipFolder.GetFolderAsync(subFolderName);
                }

                // All sub folders have been created yet. Just pass the file name to the Unzip function.
                string newFilePath = Path.GetFileName(filePath);

                if (!string.IsNullOrEmpty(newFilePath))
                {
                    // Unzip file iteratively.
                    await UnzipZipArchiveEntryAsync(entry, newFilePath, subFolder);
                }
            }
            else
            {

                // Read uncompressed contents
                using (Stream entryStream = entry.Open())
                {
                    byte[] buffer = new byte[entry.Length];
                    entryStream.Read(buffer, 0, buffer.Length);

                    // Create a file to store the contents
                    StorageFile uncompressedFile = await unzipFolder.CreateFileAsync
                    (entry.Name, CreationCollisionOption.ReplaceExisting);

                    // Store the contents
                    using (IRandomAccessStream uncompressedFileStream =
                    await uncompressedFile.OpenAsync(FileAccessMode.ReadWrite))
                    {
                        using (Stream outstream = uncompressedFileStream.AsStreamForWrite())
                        {
                            outstream.Write(buffer, 0, buffer.Length);
                            outstream.Flush();
                        }
                    }
                }
            }
        }
開發者ID:KeesPolling,項目名稱:Popmail,代碼行數:66,代碼來源:FileUtils.cs

示例10: WrappedStream

 private WrappedStream(Stream baseStream, Boolean closeBaseStream, ZipArchiveEntry entry, Action<ZipArchiveEntry> onClosed)
 {
     _baseStream = baseStream;
     _closeBaseStream = closeBaseStream;
     _onClosed = onClosed;
     _zipArchiveEntry = entry;
     _isDisposed = false;
 }
開發者ID:noahfalk,項目名稱:corefx,代碼行數:8,代碼來源:ZipCustomStreams.cs

示例11: Extract

 private async Task Extract(ZipArchiveEntry entry, string basePath)
 {
     var fn = Path.Combine(basePath, entry.FullName);
     using (var fstream = File.Create(fn))
     {
         await entry.Open().CopyToAsync(fstream);
     }
 }
開發者ID:hosiminn,項目名稱:StarryEyes,代碼行數:8,代碼來源:ReleaseActions.cs

示例12: CompressedArchiveFile

        /// <summary>
        /// Constructor.
        /// </summary>
        public CompressedArchiveFile(ZipArchiveEntry entry, int stripInitialFolders)
        {
            if (!entry.IsFile())
                throw new InvalidOperationException("Not a file.");

            _entry = entry;
            _stripInitialFolders = stripInitialFolders;
        }
開發者ID:CSClassroom,項目名稱:CSClassroom,代碼行數:11,代碼來源:CompressedArchiveFile.cs

示例13: DeflateManagedStream

        // A specific constructor to allow decompression of Deflate64
        internal DeflateManagedStream(Stream stream, ZipArchiveEntry.CompressionMethodValues method)
        {
            if (stream == null)
                throw new ArgumentNullException(nameof(stream));
            if (!stream.CanRead)
                throw new ArgumentException(SR.NotSupported_UnreadableStream, nameof(stream));

            InitializeInflater(stream, false, null, method);
        }
開發者ID:dotnet,項目名稱:corefx,代碼行數:10,代碼來源:DeflateManagedStream.cs

示例14: OnDoubleClick

 private void OnDoubleClick(object sender, MouseButtonEventArgs e)
 {
     var listBox = sender as ListBox;
     if (listBox.SelectedItem != null)
     {
         Result = listBox.SelectedItem as ZipArchiveEntry;
         Close();
     }
 }
開發者ID:prescottadam,項目名稱:samples.ZipArchives,代碼行數:9,代碼來源:ExtractFileWindow.xaml.cs

示例15: ZipWrappingStream

 public ZipWrappingStream(ZipArchiveEntry zipArchiveEntry, Stream stream, FileMode packageFileMode, FileAccess packageFileAccess, bool canRead, bool canWrite)
 {
     _zipArchiveEntry = zipArchiveEntry;
     _baseStream = stream;
     _packageFileMode = packageFileMode;
     _packageFileAccess = packageFileAccess;
     _canRead = canRead;
     _canWrite = canWrite;
 }
開發者ID:Rayislandstyle,項目名稱:corefx,代碼行數:9,代碼來源:ZipWrappingStream.cs


注:本文中的System.IO.Compression.ZipArchiveEntry類示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。