Я хочу разархивировать zip-файл на android. Я искал и нашел этот код; Я попытался реализовать его без успеха. Кто-нибудь сможет мне объяснить, почему? Кажется, я не могу найти проблему.Unzip файл не работает
Я копирую файл main.zip
на SD-карте, но после запуска программы я не могу найти папку unzipFile
на SD-карте. Почему такое поведение происходит?
И еще, если я хочу распаковать файл папки с ресурсами, как я могу получить путь к этому файлу в актив и сохранить этот путь в переменной String? Благодарю.
public class Decompress {
private String _zipFile;
private String _location;
public Decompress(String zipFile, String location) {
_zipFile = zipFile;
_location = location;
_dirChecker("");
}
public void unzip() {
try {
FileInputStream fin = new FileInputStream(_zipFile);
ZipInputStream zin = new ZipInputStream(fin);
ZipEntry ze = null;
while ((ze = zin.getNextEntry()) != null) {
Log.e("Decompress", "Unzipping " + ze.getName());
if(ze.isDirectory()) {
_dirChecker(ze.getName());
} else {
FileOutputStream fout = new FileOutputStream(_location + ze.getName());
for (int c = zin.read(); c != -1; c = zin.read()) {
fout.write(c);
}
zin.closeEntry();
fout.close();
}
}
zin.close();
} catch(Exception e) {
Log.e("Decompress", "unzip", e);
}
}
private void _dirChecker(String dir) {
File f = new File(_location + dir);
if(!f.isDirectory()) {
f.mkdirs();
}
}
}
main.java:
public class UnZipFile extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.e("he", "heee");
Toast.makeText(this, "in activity", Toast.LENGTH_LONG).show();
String zipFile = Environment.getExternalStorageDirectory()
+ "/main.zip";// "file:///android_asset/main.zip";
String unzipLocation = Environment.getExternalStorageDirectory()
+ "/unzipFile/";
Decompress d = new Decompress(zipFile, unzipLocation);
d.unzip();
}
}
manifest.xml:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
Рассмотрите возможность перезаписи 'И еще, если я хочу распаковать файл папки с ресурсами, как я могу получить путь к этому файлу в свойстве и сохранить этот путь в переменной String?'. Чрезвычайно трудно понять. –
Вопросы с основным сообщением: «Я пытался использовать этот код, вот он и почему он не работает для меня?»: Нужно безжалостно замещать, закрывать и удалять модераторы. Не спасен. Не говорите: «Это не работает». Эти типы вопросов вредят stackoverflow, наполняя его вздором: «Вот копия вставки кода, почему это не работает для меня? Это бесит, потому что существует бесконечное число причин, почему это может быть. Мы не здесь чтобы рассказать нам, что вы сделали, рассказать нам, что вы ожидали, а затем рассказать нам, что у вас есть. –
Мой вопрос ясен, The Playtypus, я имею в виду, я есть zip-файл в папке с ресурсами, и я хочу получить доступ к этому файлу для распаковки. Как я могу получить путь к этому файлу папки с ресурсами? Является ли это ясным или нет? Спасибо всем :) – user2982082