Я создаю zip из серверной части, используя PHP. и я хочу разархивировать на стороне Android.
Структура моей папки Zip включает
Для создания zip я использую следующий код
foreach ($files as $name => $file)
{
// echo $file.' -- ';
if (!$file->isDir())
{
$filePath = $file->getRealPath();
$relativePath = substr($filePath, strlen($rootPath) + 1);
//echo dirname($file);
$zip->addFile($filePath, $relativePath);
}
}
В Android я использую следующий код, чтобы распаковать
InputStream is;
ZipInputStream zis;
try {
String filename;
is = new FileInputStream(zipFile);
zis = new ZipInputStream(new BufferedInputStream(is));
ZipEntry ze;
byte[] buffer = new byte[8192];
int count;
while ((ze = zis.getNextEntry()) != null) {
filename = ze.getName();
// it will show
// it will generate an Exception...
if (ze.isDirectory()) {
File fmd = new File(location + filename);
fmd.mkdirs();
continue;
}
FileOutputStream fout = new FileOutputStream(location + filename);
while ((count = zis.read(buffer)) != -1) {
fout.write(buffer, 0, count);
}
fout.close();
zis.closeEntry();
}
zis.close();
} catch (IOException e) {
e.printStackTrace();
}
Но это не дает мне должного результата, который мне нужен.
Я ожидаю выхода на
ze.getName () is FolderName /
но я фактический вывод
Имя папки / имя файла
, поэтому он не рассматривает косую черту как каталог и выдает исключение File Not Found.