예제 #1
0
		/// <summary>
		/// Extracts all the files from a cabinet to a directory.
		/// </summary>
		/// <param name="cabinetFile">Cabinet file to extract from.</param>
		/// <param name="extractDir">Directory to extract files to.</param>
		public void Extract(string cabinetFile, string extractDir)
		{
			if (null == extractDir)
			{
				throw new ArgumentNullException("extractDir");
			}

			if (!extractDir.EndsWith("\\"))
			{
				extractDir = String.Concat(extractDir, "\\");
			}

			int err = CabInterop.ExtractCab(cabinetFile, extractDir);
			if (0 != err)
			{
				throw new WixCabExtractionException(extractDir, new COMException(String.Concat("Failed to extract files from cabinet, error: ", err), err));
			}
			err = System.Runtime.InteropServices.Marshal.GetLastWin32Error();
			if (0 != err)
			{
				throw new WixCabExtractionException(new COMException(String.Concat("Failed to execute cab extract, error: ", err), err));
			}
		}
예제 #2
0
        /// <summary>
        /// Extracts all the files from a cabinet to a directory.
        /// </summary>
        /// <param name="cabinetFile">Cabinet file to extract from.</param>
        /// <param name="extractDir">Directory to extract files to.</param>
        public void Extract(string cabinetFile, string extractDir)
        {
            if (null == cabinetFile)
            {
                throw new ArgumentNullException("cabinetFile");
            }

            if (null == extractDir)
            {
                throw new ArgumentNullException("extractDir");
            }

            if (this.disposed)
            {
                throw new ObjectDisposedException("WixExtractCab");
            }

            if (!extractDir.EndsWith("\\"))
            {
                extractDir = String.Concat(extractDir, "\\");
            }

            CabInterop.ExtractCab(cabinetFile, extractDir);
        }