<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Unzipping a .zip file in SAS in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Unzipping-a-zip-file-in-SAS/m-p/682034#M206420</link>
    <description>&lt;P&gt;You can use DOPEN() and DREAD() to get a list of the members in the ZIP file.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;*-----------------------------------------------------------------------------;
* Get list of members in the ZIP file ;
*-----------------------------------------------------------------------------;
%let fname=C:\downloads\test1.xlsx;
data filelist;
  length fileref $8 fname $256 fnum 8 memname $256.;
  fname = symget('fname');
  rc=filename(fileref,fname,'zip');
  did=dopen(fileref);
  do fnum=1 to dnum(did);
    memname=dread(did,fnum);
    output;
  end;
  did=dclose(did);
  rc=filename(fileref);
  drop fileref did rc;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;You can then use FCOPY() to copy the files.&amp;nbsp; You can use the DLCREATEDIR option and LIBNAME() function to make any required subdirectories. Use RECFM=F LRECL=512 to copy the files as binary.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;*-----------------------------------------------------------------------------;
* Copy members to files in target directory ;
*-----------------------------------------------------------------------------;
%let dname=c:\downloads\test_unzip ;
%let dlcreatedir=%sysfunc(getoption(dlcreatedir));
options dlcreatedir;
data results;
  set filelist ;
  length libref in out $8 outfile $256.;
  rc1=filename(in,fname,'zip',catx(' ','recfm=f','lrecl=512','member=',quote(trim(memname))));
  outfile=symget('dname');
  rc2=libname(libref,outfile);
  do level=1 to countw(memname,'/')-1;
    outfile=catx('\',outfile,scan(memname,level,'/'));
    rc2=libname(libref,outfile);
  end;
  rc2=libname(libref);
  outfile=catx('\',outfile,scan(memname,level,'/'));
  rc3=filename(out,outfile,,'recfm=f lrecl=512');
  rc4=fcopy(in,out);
  length msg $ 384;
  if rc4 then msg=sysmsg();
  drop libref in out ;
run;
options &amp;amp;dlcreatedir ;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Example Resutls:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc print data=results;
 var fnum memname outfile ;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;PRE&gt;Obs    fnum    memname                                 outfile

  1      1     [Content_Types].xml                     c:\downloads\test_unzip\[Content_Types].xml
  2      2     xl/worksheets/sheet1.xml                c:\downloads\test_unzip\xl\worksheets\sheet1.xml
  3      3     xl/worksheets/_rels/sheet1.xml.rels     c:\downloads\test_unzip\xl\worksheets\_rels\sheet1.xml.rels
  4      4     xl/worksheets/sheet2.xml                c:\downloads\test_unzip\xl\worksheets\sheet2.xml
  5      5     xl/worksheets/_rels/sheet2.xml.rels     c:\downloads\test_unzip\xl\worksheets\_rels\sheet2.xml.rels
  6      6     xl/worksheets/sheet3.xml                c:\downloads\test_unzip\xl\worksheets\sheet3.xml
  7      7     xl/worksheets/_rels/sheet3.xml.rels     c:\downloads\test_unzip\xl\worksheets\_rels\sheet3.xml.rels
  8      8     xl/worksheets/sheet4.xml                c:\downloads\test_unzip\xl\worksheets\sheet4.xml
  9      9     xl/worksheets/_rels/sheet4.xml.rels     c:\downloads\test_unzip\xl\worksheets\_rels\sheet4.xml.rels
 10     10     xl/worksheets/sheet5.xml                c:\downloads\test_unzip\xl\worksheets\sheet5.xml
 11     11     xl/worksheets/_rels/sheet5.xml.rels     c:\downloads\test_unzip\xl\worksheets\_rels\sheet5.xml.rels
 12     12     xl/worksheets/sheet6.xml                c:\downloads\test_unzip\xl\worksheets\sheet6.xml
 13     13     xl/worksheets/_rels/sheet6.xml.rels     c:\downloads\test_unzip\xl\worksheets\_rels\sheet6.xml.rels
 14     14     xl/worksheets/sheet7.xml                c:\downloads\test_unzip\xl\worksheets\sheet7.xml
 15     15     xl/worksheets/_rels/sheet7.xml.rels     c:\downloads\test_unzip\xl\worksheets\_rels\sheet7.xml.rels
 16     16     xl/worksheets/sheet8.xml                c:\downloads\test_unzip\xl\worksheets\sheet8.xml
 17     17     xl/worksheets/_rels/sheet8.xml.rels     c:\downloads\test_unzip\xl\worksheets\_rels\sheet8.xml.rels
 18     18     xl/worksheets/sheet9.xml                c:\downloads\test_unzip\xl\worksheets\sheet9.xml
 19     19     xl/worksheets/_rels/sheet9.xml.rels     c:\downloads\test_unzip\xl\worksheets\_rels\sheet9.xml.rels
 20     20     xl/worksheets/sheet10.xml               c:\downloads\test_unzip\xl\worksheets\sheet10.xml
 21     21     xl/worksheets/_rels/sheet10.xml.rels    c:\downloads\test_unzip\xl\worksheets\_rels\sheet10.xml.rels
 22     22     xl/worksheets/sheet11.xml               c:\downloads\test_unzip\xl\worksheets\sheet11.xml
 23     23     xl/worksheets/_rels/sheet11.xml.rels    c:\downloads\test_unzip\xl\worksheets\_rels\sheet11.xml.rels
 24     24     xl/worksheets/sheet12.xml               c:\downloads\test_unzip\xl\worksheets\sheet12.xml
 25     25     xl/worksheets/_rels/sheet12.xml.rels    c:\downloads\test_unzip\xl\worksheets\_rels\sheet12.xml.rels
 26     26     xl/worksheets/sheet13.xml               c:\downloads\test_unzip\xl\worksheets\sheet13.xml
 27     27     xl/worksheets/_rels/sheet13.xml.rels    c:\downloads\test_unzip\xl\worksheets\_rels\sheet13.xml.rels
 28     28     xl/worksheets/sheet14.xml               c:\downloads\test_unzip\xl\worksheets\sheet14.xml
 29     29     xl/worksheets/_rels/sheet14.xml.rels    c:\downloads\test_unzip\xl\worksheets\_rels\sheet14.xml.rels
 30     30     xl/worksheets/sheet15.xml               c:\downloads\test_unzip\xl\worksheets\sheet15.xml
 31     31     xl/worksheets/_rels/sheet15.xml.rels    c:\downloads\test_unzip\xl\worksheets\_rels\sheet15.xml.rels
 32     32     xl/worksheets/sheet16.xml               c:\downloads\test_unzip\xl\worksheets\sheet16.xml
 33     33     xl/worksheets/_rels/sheet16.xml.rels    c:\downloads\test_unzip\xl\worksheets\_rels\sheet16.xml.rels
 34     34     xl/worksheets/sheet17.xml               c:\downloads\test_unzip\xl\worksheets\sheet17.xml
 35     35     xl/worksheets/_rels/sheet17.xml.rels    c:\downloads\test_unzip\xl\worksheets\_rels\sheet17.xml.rels
 36     36     xl/worksheets/sheet18.xml               c:\downloads\test_unzip\xl\worksheets\sheet18.xml
 37     37     xl/worksheets/_rels/sheet18.xml.rels    c:\downloads\test_unzip\xl\worksheets\_rels\sheet18.xml.rels
 38     38     xl/workbook.xml                         c:\downloads\test_unzip\xl\workbook.xml
 39     39     xl/styles.xml                           c:\downloads\test_unzip\xl\styles.xml
 40     40     xl/sharedStrings.xml                    c:\downloads\test_unzip\xl\sharedStrings.xml&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Mon, 07 Sep 2020 16:03:58 GMT</pubDate>
    <dc:creator>Tom</dc:creator>
    <dc:date>2020-09-07T16:03:58Z</dc:date>
    <item>
      <title>Unzipping a .zip file in SAS</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Unzipping-a-zip-file-in-SAS/m-p/682013#M206404</link>
      <description>&lt;P&gt;All,&lt;/P&gt;
&lt;P&gt;Is it possible to unzip a .zip file in SAS. we have disabled XMCD so can't use X commands to unzip them. looking for SAS code.&lt;/P&gt;
&lt;P&gt;Thanks,&lt;/P&gt;
&lt;P&gt;SS&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 07 Sep 2020 13:28:29 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Unzipping-a-zip-file-in-SAS/m-p/682013#M206404</guid>
      <dc:creator>sathya66</dc:creator>
      <dc:date>2020-09-07T13:28:29Z</dc:date>
    </item>
    <item>
      <title>Re: Unzipping a .zip file in SAS</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Unzipping-a-zip-file-in-SAS/m-p/682018#M206409</link>
      <description>&lt;P&gt;Do you know what is in the file? Does it have one file or multiple files?&lt;/P&gt;
&lt;P&gt;What types of files are in the file?&amp;nbsp; If they are just text file(s) then perhaps you can just read directly from the zip file without unzipping it.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want;
  infile 'myfile.zip' zip member='myfile.csv' dsd firstobs=2 truncover;
  ....
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Mon, 07 Sep 2020 13:47:11 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Unzipping-a-zip-file-in-SAS/m-p/682018#M206409</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2020-09-07T13:47:11Z</dc:date>
    </item>
    <item>
      <title>Re: Unzipping a .zip file in SAS</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Unzipping-a-zip-file-in-SAS/m-p/682023#M206414</link>
      <description>It has bunch of folders and various file types. Zipped in  one ENV ,copied and  trying to unzip it in another ENV.</description>
      <pubDate>Mon, 07 Sep 2020 14:00:24 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Unzipping-a-zip-file-in-SAS/m-p/682023#M206414</guid>
      <dc:creator>sathya66</dc:creator>
      <dc:date>2020-09-07T14:00:24Z</dc:date>
    </item>
    <item>
      <title>Re: Unzipping a .zip file in SAS</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Unzipping-a-zip-file-in-SAS/m-p/682029#M206418</link>
      <description>&lt;P&gt;The documentation (see Maxim 1) of&amp;nbsp;&lt;A href="https://documentation.sas.com/?cdcId=pgmsascdc&amp;amp;cdcVersion=9.4_3.4&amp;amp;docsetId=lestmtsglobal&amp;amp;docsetTarget=n1dn0f61yfyzton1l2ngsa1clllr.htm&amp;amp;locale=en" target="_blank" rel="noopener"&gt;FILENAME Statement: ZIP Access Method&lt;/A&gt;&amp;nbsp;shows what you can do in SAS with ZIP and GZIP files.&lt;/P&gt;</description>
      <pubDate>Mon, 07 Sep 2020 15:12:45 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Unzipping-a-zip-file-in-SAS/m-p/682029#M206418</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2020-09-07T15:12:45Z</dc:date>
    </item>
    <item>
      <title>Re: Unzipping a .zip file in SAS</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Unzipping-a-zip-file-in-SAS/m-p/682034#M206420</link>
      <description>&lt;P&gt;You can use DOPEN() and DREAD() to get a list of the members in the ZIP file.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;*-----------------------------------------------------------------------------;
* Get list of members in the ZIP file ;
*-----------------------------------------------------------------------------;
%let fname=C:\downloads\test1.xlsx;
data filelist;
  length fileref $8 fname $256 fnum 8 memname $256.;
  fname = symget('fname');
  rc=filename(fileref,fname,'zip');
  did=dopen(fileref);
  do fnum=1 to dnum(did);
    memname=dread(did,fnum);
    output;
  end;
  did=dclose(did);
  rc=filename(fileref);
  drop fileref did rc;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;You can then use FCOPY() to copy the files.&amp;nbsp; You can use the DLCREATEDIR option and LIBNAME() function to make any required subdirectories. Use RECFM=F LRECL=512 to copy the files as binary.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;*-----------------------------------------------------------------------------;
* Copy members to files in target directory ;
*-----------------------------------------------------------------------------;
%let dname=c:\downloads\test_unzip ;
%let dlcreatedir=%sysfunc(getoption(dlcreatedir));
options dlcreatedir;
data results;
  set filelist ;
  length libref in out $8 outfile $256.;
  rc1=filename(in,fname,'zip',catx(' ','recfm=f','lrecl=512','member=',quote(trim(memname))));
  outfile=symget('dname');
  rc2=libname(libref,outfile);
  do level=1 to countw(memname,'/')-1;
    outfile=catx('\',outfile,scan(memname,level,'/'));
    rc2=libname(libref,outfile);
  end;
  rc2=libname(libref);
  outfile=catx('\',outfile,scan(memname,level,'/'));
  rc3=filename(out,outfile,,'recfm=f lrecl=512');
  rc4=fcopy(in,out);
  length msg $ 384;
  if rc4 then msg=sysmsg();
  drop libref in out ;
run;
options &amp;amp;dlcreatedir ;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Example Resutls:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc print data=results;
 var fnum memname outfile ;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;PRE&gt;Obs    fnum    memname                                 outfile

  1      1     [Content_Types].xml                     c:\downloads\test_unzip\[Content_Types].xml
  2      2     xl/worksheets/sheet1.xml                c:\downloads\test_unzip\xl\worksheets\sheet1.xml
  3      3     xl/worksheets/_rels/sheet1.xml.rels     c:\downloads\test_unzip\xl\worksheets\_rels\sheet1.xml.rels
  4      4     xl/worksheets/sheet2.xml                c:\downloads\test_unzip\xl\worksheets\sheet2.xml
  5      5     xl/worksheets/_rels/sheet2.xml.rels     c:\downloads\test_unzip\xl\worksheets\_rels\sheet2.xml.rels
  6      6     xl/worksheets/sheet3.xml                c:\downloads\test_unzip\xl\worksheets\sheet3.xml
  7      7     xl/worksheets/_rels/sheet3.xml.rels     c:\downloads\test_unzip\xl\worksheets\_rels\sheet3.xml.rels
  8      8     xl/worksheets/sheet4.xml                c:\downloads\test_unzip\xl\worksheets\sheet4.xml
  9      9     xl/worksheets/_rels/sheet4.xml.rels     c:\downloads\test_unzip\xl\worksheets\_rels\sheet4.xml.rels
 10     10     xl/worksheets/sheet5.xml                c:\downloads\test_unzip\xl\worksheets\sheet5.xml
 11     11     xl/worksheets/_rels/sheet5.xml.rels     c:\downloads\test_unzip\xl\worksheets\_rels\sheet5.xml.rels
 12     12     xl/worksheets/sheet6.xml                c:\downloads\test_unzip\xl\worksheets\sheet6.xml
 13     13     xl/worksheets/_rels/sheet6.xml.rels     c:\downloads\test_unzip\xl\worksheets\_rels\sheet6.xml.rels
 14     14     xl/worksheets/sheet7.xml                c:\downloads\test_unzip\xl\worksheets\sheet7.xml
 15     15     xl/worksheets/_rels/sheet7.xml.rels     c:\downloads\test_unzip\xl\worksheets\_rels\sheet7.xml.rels
 16     16     xl/worksheets/sheet8.xml                c:\downloads\test_unzip\xl\worksheets\sheet8.xml
 17     17     xl/worksheets/_rels/sheet8.xml.rels     c:\downloads\test_unzip\xl\worksheets\_rels\sheet8.xml.rels
 18     18     xl/worksheets/sheet9.xml                c:\downloads\test_unzip\xl\worksheets\sheet9.xml
 19     19     xl/worksheets/_rels/sheet9.xml.rels     c:\downloads\test_unzip\xl\worksheets\_rels\sheet9.xml.rels
 20     20     xl/worksheets/sheet10.xml               c:\downloads\test_unzip\xl\worksheets\sheet10.xml
 21     21     xl/worksheets/_rels/sheet10.xml.rels    c:\downloads\test_unzip\xl\worksheets\_rels\sheet10.xml.rels
 22     22     xl/worksheets/sheet11.xml               c:\downloads\test_unzip\xl\worksheets\sheet11.xml
 23     23     xl/worksheets/_rels/sheet11.xml.rels    c:\downloads\test_unzip\xl\worksheets\_rels\sheet11.xml.rels
 24     24     xl/worksheets/sheet12.xml               c:\downloads\test_unzip\xl\worksheets\sheet12.xml
 25     25     xl/worksheets/_rels/sheet12.xml.rels    c:\downloads\test_unzip\xl\worksheets\_rels\sheet12.xml.rels
 26     26     xl/worksheets/sheet13.xml               c:\downloads\test_unzip\xl\worksheets\sheet13.xml
 27     27     xl/worksheets/_rels/sheet13.xml.rels    c:\downloads\test_unzip\xl\worksheets\_rels\sheet13.xml.rels
 28     28     xl/worksheets/sheet14.xml               c:\downloads\test_unzip\xl\worksheets\sheet14.xml
 29     29     xl/worksheets/_rels/sheet14.xml.rels    c:\downloads\test_unzip\xl\worksheets\_rels\sheet14.xml.rels
 30     30     xl/worksheets/sheet15.xml               c:\downloads\test_unzip\xl\worksheets\sheet15.xml
 31     31     xl/worksheets/_rels/sheet15.xml.rels    c:\downloads\test_unzip\xl\worksheets\_rels\sheet15.xml.rels
 32     32     xl/worksheets/sheet16.xml               c:\downloads\test_unzip\xl\worksheets\sheet16.xml
 33     33     xl/worksheets/_rels/sheet16.xml.rels    c:\downloads\test_unzip\xl\worksheets\_rels\sheet16.xml.rels
 34     34     xl/worksheets/sheet17.xml               c:\downloads\test_unzip\xl\worksheets\sheet17.xml
 35     35     xl/worksheets/_rels/sheet17.xml.rels    c:\downloads\test_unzip\xl\worksheets\_rels\sheet17.xml.rels
 36     36     xl/worksheets/sheet18.xml               c:\downloads\test_unzip\xl\worksheets\sheet18.xml
 37     37     xl/worksheets/_rels/sheet18.xml.rels    c:\downloads\test_unzip\xl\worksheets\_rels\sheet18.xml.rels
 38     38     xl/workbook.xml                         c:\downloads\test_unzip\xl\workbook.xml
 39     39     xl/styles.xml                           c:\downloads\test_unzip\xl\styles.xml
 40     40     xl/sharedStrings.xml                    c:\downloads\test_unzip\xl\sharedStrings.xml&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 07 Sep 2020 16:03:58 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Unzipping-a-zip-file-in-SAS/m-p/682034#M206420</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2020-09-07T16:03:58Z</dc:date>
    </item>
  </channel>
</rss>

