BSky.Statistics.R.RPackageManager.GetPackageNameFromZip C# (CSharp) Method

GetPackageNameFromZip() public method

public GetPackageNameFromZip ( string fullpathpackagefilename, string &packageversion ) : string
fullpathpackagefilename string
packageversion string
return string
        public string GetPackageNameFromZip(string fullpathpackagefilename, out string packageversion)
        {
            string packagename = string.Empty;
            packageversion = string.Empty;//to get the version
            FileStream fileStreamIn = new FileStream(fullpathpackagefilename, FileMode.Open, FileAccess.Read);
            ZipInputStream zipInStream = new ZipInputStream(fileStreamIn);
            ZipEntry entry = zipInStream.GetNextEntry();
            string tempDir = Path.GetTempPath().Replace("\\", "/");
            StringBuilder path = new StringBuilder(tempDir);
            path.Append("DESCRIPTION");
            FileStream fileStreamOut = null;
            bool isFileExtracted = false;
            //Extract the file
            while (entry != null)
            {
                if (entry.Name.EndsWith("DESCRIPTION"))
                {
                    fileStreamOut = new FileStream(path.ToString(), FileMode.Create, FileAccess.Write);
                    int size;
                    byte[] buffer = new byte[1024];
                    do
                    {
                        size = zipInStream.Read(buffer, 0, buffer.Length);
                        fileStreamOut.Write(buffer, 0, size);
                    } while (size > 0);
                    fileStreamOut.Close();
                    isFileExtracted = true;
                    break;
                }
                entry = zipInStream.GetNextEntry();
            }
            zipInStream.Close();
            fileStreamIn.Close();

            //Read Line by line
            if (isFileExtracted)
            {
                string line;
                System.IO.StreamReader file = new System.IO.StreamReader(path.ToString());
                while ((line = file.ReadLine()) != null)
                {
                    if (line.Contains("Package:")) 
                    {
                        packagename = line.Replace("Package:", string.Empty).Trim();
                        //break;
                    }
                    if (line.Contains("Version:")) 
                    {
                        packageversion = line.Replace("Version:", string.Empty).Trim();
                        break;
                    }
                }
                file.Close();
            }
            return packagename;
        }