• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 541
  • Last Modified:

Unzip and save .csv but when open appears unreadable

I am unzipping a zipped csvfile and saving it to a path.  It does save but when I open it later for processing, it is unreadable.   I've included my code - may be a simple correction or addition to code here but I'm hung up!  Also, am I setting the size incorrectly - not sure on this either.   Fastest solution/fix to my code that works gets points.  [I need this to save the unzipped file.csv such that when opened programmaticaly it is readable]

        public static string UnZipFiles(string zipPathAndFile, string outputFolder, string password, bool deleteZipFile, int FileNum)
        {
            ZipInputStream s = new ZipInputStream(File.OpenRead(zipPathAndFile));

            string sReturnFileToProcess = "";
            string TempUnZipFolder = "";
            string sFileNamed = "";

            TempUnZipFolder = @"\\\\server\\driveletter$\\folder\\anotherfolder\\";

            if (password != null && password != String.Empty)
                s.Password = password;
            ZipEntry theEntry;
            string tmpEntry = String.Empty;
            while ((theEntry = s.GetNextEntry()) != null)
            {

                // string directoryName = outputFolder;
                string directoryName = TempUnZipFolder;
                string fileName = Path.GetFileName(theEntry.Name);

                // create directory
                if (directoryName != "")
                {
                    Directory.CreateDirectory(directoryName);
                }
                if (fileName != String.Empty)
                {
                    if (theEntry.Name.IndexOf(".ini") < 0)
                    {
                        string fullPath = TempUnZipFolder + "\\" + FileNum.ToString() + "_" + theEntry.Name;
                        sFileNamed = FileNum.ToString() + "_" + theEntry.Name;

                        sReturnFileToProcess = sFileNamed;

                        fullPath = fullPath.Replace("\\ ", "\\");
                        string fullDirPath = Path.GetDirectoryName(fullPath);
                        if (!Directory.Exists(fullDirPath)) Directory.CreateDirectory(fullDirPath);
                        FileStream streamWriter = File.Create(fullPath);
                        int size = 20480;

                        byte[] data = new byte[20480];

                        while (true)
                        {
                            size = s.Read(data, 0, data.Length);
                            if (size > 0)
                            {
                                streamWriter.Write(data, 0, size);
                            }
                            else
                            {
                                break;
                            }
                        }
                        streamWriter.Close();
                    }
                }
            }
            s.Close();
            if (deleteZipFile)
            {
                File.Delete(zipPathAndFile);
            }

            return sReturnFileToProcess;

        }


Thank in advance!
0
Shay10
Asked:
Shay10
1 Solution
 
Jaime OlivaresCommented:
at a first glance your code looks well. How are you verifying that the file is unreadable?
0
 
b_levittCommented:
I'm unfamiliar with the zip component you're using, but if you can manually unzip this file, than I would start with that components documentation.  I've always had good luck with dotnetzip:
http://dotnetzip.codeplex.com/
0
 
Shay10Author Commented:
I open the same file (that is unzipped in the code I've posted) later in processing using a different method I wrote.  This same method works fine on .csv files that have been manually extracted from zip.  

The files I have unzipped in code behind are simply scrambled when this method opens them and attempts to read line by line.  That's the pattern - anything unzipped in code fails while a normal (manually extracted .csv file) reads fine.  

I'm out of time tonight - will check out the dotnetzip link soon.  Any other questions, please post it as I'll be checking this atleast twice a day.
Thanks!

0
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
AndyAinscowCommented:
Can you post a bit of the 'garbled' text you get after unzipping ?
I'm wondering if you are somehow getting a UNICODE/ANSI scrambling
0
 
Shay10Author Commented:
This is some of what a line looks like in code.

¿¿¿¿C¿|al¿¿¿4¿8¿S;^¿¿¿8¿¿P¿¿0¿¿¿¿¿¿¿¿¿¿¿¿w¿¿¿¿;\f}¿6NG¿p¿¿xe¿A¿¿]?n¿¿¿¿H¿PiI¿:]U^z¿?¿¿¿¿¿WR

-not sure what I'm missing.
0
 
Shay10Author Commented:
Was able to make this work quickly - still not sure why other code snippet was failing.  Might revisit that later if time permits.

Thanks for the link - was very helpful!
0

Featured Post

Get your Disaster Recovery as a Service basics

Disaster Recovery as a Service is one go-to solution that revolutionizes DR planning. Implementing DRaaS could be an efficient process, easily accessible to non-DR experts. Learn about monitoring, testing, executing failovers and failbacks to ensure a "healthy" DR environment.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now