The unrar library java binding.
// gradle implementation
implementation 'com.github.awxkee:unrar-android:1.0.1'
List archive entries:
RarFile rar=new RarFile("/sdcard/test.rar");
for(RarEntry entry:rar.getEntries(null)){
....
}
// check if password protected
rar.isPasswordProtected()
// validate password
rar.validatePassword("pwd")
// set password
rar.setPassword("newPassword")
Extract entry:
RarFile rar=new RarFile("/sdcard/test.rar");
rar.extract("one.txt",new UnrarCallback() {
@Override
public void close() throws IOException {}
@Override
public void processData(byte[] b, int off, int len) throws IOException {
System.out.println(new String(b, off, len, "GBK"));
}
});
Extract all entries:
RarFile rar=new RarFile("/sdcard/test.rar");
rar.extractAll("/destPath/",null);
While this crate uses the Apache license for the java parts, the embedded C++ library has a different license.
For more informations, see its license file.