Esempio n. 1
0
 /// <summary>
 /// Creates a new ZipFileInfo object representing a file within a zip in a specified path.
 /// </summary>
 /// <param name="zipInfo">An object representing the zip archive containing the file.</param>
 /// <param name="filePath">The path to the file within the zip archive. Usually, this is a simple file
 /// name, but if the zip archive contains a directory structure this may include the directory.</param>
 public ZipFileInfo(ZipInfo zipInfo, string filePath)
     : base(zipInfo, filePath)
 {
     if (zipInfo == null)
     {
         throw new ArgumentNullException("zipInfo");
     }
 }
Esempio n. 2
0
 /// <summary>
 /// Creates a new ZipFileInfo object representing a file within a zip in a specified path.
 /// </summary>
 /// <param name="zipInfo">An object representing the zip archive containing the file.</param>
 /// <param name="filePath">The path to the file within the zip archive. Usually, this is a simple file
 /// name, but if the zip archive contains a directory structure this may include the directory.</param>
 internal ZipFileInfo(ZipInfo zipInfo, string filePath)
     : base(zipInfo, filePath)
 {
     if (zipInfo == null)
     {
         throw new ArgumentNullException("zipInfo");
     }
 }
Esempio n. 3
0
        public void ZipTruncatedArchive()
        {
            ZipInfo zipInfo = new ZipInfo("test-t.zip");
            CompressionTestUtil.GenerateRandomFile("ziptest-0.txt", 0, 5);
            CompressionTestUtil.GenerateRandomFile("ziptest-1.txt", 1, 5);
            zipInfo.PackFiles(null, new string[] { "ziptest-0.txt", "ziptest-1.txt" }, null);

            CompressionTestUtil.TestTruncatedArchive(zipInfo, typeof(ZipException));
        }
Esempio n. 4
0
        public void ZipBadUnpackStreamContexts()
        {
            int txtSize = 40960;
            ZipInfo zipInfo = new ZipInfo("test2.zip");
            CompressionTestUtil.GenerateRandomFile("ziptest-0.txt", 0, txtSize);
            CompressionTestUtil.GenerateRandomFile("ziptest-1.txt", 1, txtSize);
            zipInfo.PackFiles(null, new string[] { "ziptest-0.txt", "ziptest-1.txt" }, null);

            using (ZipEngine zipEngine = new ZipEngine())
            {
                CompressionTestUtil.TestBadUnpackStreamContexts(zipEngine, "test2.zip");
            }
        }
Esempio n. 5
0
        public void ZipFileInfoNullParams()
        {
            Exception caughtEx;
            ZipInfo zipInfo = new ZipInfo("test.zip");
            int txtSize = 10240;
            CompressionTestUtil.GenerateRandomFile("test00.txt", 0, txtSize);
            CompressionTestUtil.GenerateRandomFile("test01.txt", 1, txtSize);
            zipInfo.PackFiles(null, new string[] { "test00.txt", "test01.txt" }, null);
            ZipFileInfo zfi = new ZipFileInfo(zipInfo, "test01.txt");

            caughtEx = null;
            try
            {
                new ZipFileInfo(null, "test00.txt");
            }
            catch (Exception ex) { caughtEx = ex; }
            Assert.IsInstanceOfType(caughtEx, typeof(ArgumentNullException));
            caughtEx = null;
            try
            {
                new ZipFileInfo(zipInfo, null);
            }
            catch (Exception ex) { caughtEx = ex; }
            Assert.IsInstanceOfType(caughtEx, typeof(ArgumentNullException));
            caughtEx = null;
            try
            {
                zfi.CopyTo(null);
            }
            catch (Exception ex) { caughtEx = ex; }
            Assert.IsInstanceOfType(caughtEx, typeof(ArgumentNullException));
        }
Esempio n. 6
0
        public void ZipInfoNullParams()
        {
            int fileCount = 10, fileSize = 1024;
            string dirA = String.Format("{0}-{1}-A", fileCount, fileSize);
            if (Directory.Exists(dirA)) Directory.Delete(dirA, true);
            Directory.CreateDirectory(dirA);
            string dirB = String.Format("{0}-{1}-B", fileCount, fileSize);
            if (Directory.Exists(dirB)) Directory.Delete(dirB, true);
            Directory.CreateDirectory(dirB);

            string[] files = new string[fileCount];
            for (int iFile = 0; iFile < fileCount; iFile++)
            {
                files[iFile] = "zipinfo-" + iFile + ".txt";
                CompressionTestUtil.GenerateRandomFile(Path.Combine(dirA, files[iFile]), iFile, fileSize);
            }

            ZipInfo zipInfo = new ZipInfo("testnull.zip");

            CompressionTestUtil.TestArchiveInfoNullParams(zipInfo, dirA, dirB, files);
        }
Esempio n. 7
0
        public void ZipInfoGetFiles()
        {
            IList<ZipFileInfo> fileInfos;
            ZipInfo zipInfo = new ZipInfo("testgetfiles.zip");

            int txtSize = 10240;
            CompressionTestUtil.GenerateRandomFile("testinfo0.txt", 0, txtSize);
            CompressionTestUtil.GenerateRandomFile("testinfo1.txt", 1, txtSize);
            CompressionTestUtil.GenerateRandomFile("testinfo2.ini", 2, txtSize);
            zipInfo.PackFiles(null, new string[] { "testinfo0.txt", "testinfo1.txt", "testinfo2.ini" }, null);

            fileInfos = zipInfo.GetFiles();
            Assert.IsNotNull(fileInfos);
            Assert.AreEqual<int>(3, fileInfos.Count);
            Assert.AreEqual<string>("testinfo0.txt", fileInfos[0].Name);
            Assert.AreEqual<string>("testinfo1.txt", fileInfos[1].Name);
            Assert.AreEqual<string>("testinfo2.ini", fileInfos[2].Name);

            fileInfos = zipInfo.GetFiles("*.txt");
            Assert.IsNotNull(fileInfos);
            Assert.AreEqual<int>(2, fileInfos.Count);
            Assert.AreEqual<string>("testinfo0.txt", fileInfos[0].Name);
            Assert.AreEqual<string>("testinfo1.txt", fileInfos[1].Name);

            fileInfos = zipInfo.GetFiles("testinfo1.txt");
            Assert.IsNotNull(fileInfos);
            Assert.AreEqual<int>(1, fileInfos.Count);
            Assert.AreEqual<string>("testinfo1.txt", fileInfos[0].Name);
            Assert.IsTrue(DateTime.Now - fileInfos[0].LastWriteTime < TimeSpan.FromMinutes(1),
                "Checking ZipFileInfo.LastWriteTime is current.");
        }