title: /storage/emulated/0/AndroidAPP/addon_data/plugin.audio.mp3streams/artist_icons/David Bowie.jpg: open failed: ENOENT (No such file or directory)
body: <p>I want to extract zip files in android. It is working fine for other Zip fILES, But i have one zip files which can not extract to any path of sdcard.
  It gives me this error.</p>
  
  <pre><code>  /storage/emulated/0/AndroidTVAPP/addon_data/plugin.audio.mp3streams/artist_icons/David Bowie.jpg: open failed: ENOENT (No such file or directory)
  </code></pre>
  
  <p><strong>Unzip File JAVA CLASS</strong></p>
  
  <pre><code>public class UnzipUtility  
  { 
  /**
   * Size of the buffer to read/write data
   */
  private static final int BUFFER_SIZE = 4096;
  /**
   * Extracts a zip file specified by the zipFilePath to a directory specified by
   * destDirectory (will be created if does not exists)
   * @param zipFilePath
   * @param destDirectory
   * @throws IOException
   */
  public void unzip(String zipFilePath, String destDirectory) throws IOException 
  {
      File destDir = new File(destDirectory);
      if (!destDir.exists()) 
      {
          destDir.mkdir();
      }
      ZipInputStream zipIn = new ZipInputStream(new FileInputStream(zipFilePath));
      ZipEntry entry = zipIn.getNextEntry();
      // iterates over entries in the zip file
      while (entry != null) 
      {
  
  
  
          String filePath = destDirectory + File.separator + entry.getName();
  
          String filePath2 = File.separator + entry.getName();// filePath;
  
          if (null != filePath2 &amp;&amp; filePath2.length() &gt; 0 )
          {
              int endIndex = filePath2.lastIndexOf("/");
              if (endIndex != -1)  
              {
                  filePath2 = filePath2.substring(0, endIndex); // not forgot to put check if(endIndex != -1)
  
                   Log.e("File path=",""+filePath2);
  
                   File root = android.os.Environment.getExternalStorageDirectory();
                   File dir = new File(root.getAbsolutePath() + "/AndroidTVAPP"+File.separator+filePath2);
                    if(dir.exists() == false){
                        dir.mkdirs();  
                    }
  
  
  
              }
          }  
  
  
          if (!entry.isDirectory()) {
              // if the entry is a file, extracts it
              extractFile(zipIn, filePath);
          } else {
              // if the entry is a directory, make the directory
              File dir = new File(filePath);
              dir.mkdir();
          }
          zipIn.closeEntry();
          entry = zipIn.getNextEntry();
      }
      zipIn.close();
  }
  /**
   * Extracts a zip entry (file entry)
   * @param zipIn
   * @param filePath
   * @throws IOException
   */
  private void extractFile(ZipInputStream zipIn, String filePath) throws IOException 
  {
      BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(filePath));
      byte[] bytesIn = new byte[BUFFER_SIZE];
      int read = 0;
      while ((read = zipIn.read(bytesIn)) != -1) {
          bos.write(bytesIn, 0, read);
      }
      bos.close();
  }
  </code></pre>
  
  <p>}</p>