2017-02-07 2 views
-4

В классе MainActivity, у меня есть массив файлов, указанный ниже, где getExternalFilesDirs() - от ContextWrapper класс.Как заставить строку стать файлом []?

File[] fs = getExternalFilesDirs(null); 

Теперь, я не хочу писать getExternalFilesDirs в MainActivity классе, вместо этого, я хочу, чтобы определить getExternalFilesDirs() как String в .so файл. Поэтому я делаю это как в папке cpp.

JNIEXPORT jstring JNICALL 
Java_com_test_MainActivity_callDirs(JNIEnv *env, jobject thiz) { 
    return (*env)->NewStringUTF(env, "getExternalFilesDirs(null)"); 
} 

Тогда в MainActivity классе, я называю callDirs() которые возвращают getExternalFilesDirs(null).

То, что я пытался до сих пор назвать:

File[] fs = callDirs(); 

Ошибка: требуется Файл [], найдено String.

Как создать строку getExternalFilesDirs(null) в качестве файла []?

+0

Ваш код не начинает иметь смысл. Вы возвращаете имя функции вместо возвращаемого значения, а затем считаете, что это * - * возвращаемое значение. Вам не нужно писать код JNI для списка файлов в каталоге: см. 'File.listFiles()'. Неясно, что вы спрашиваете. – EJP

+0

Люди, которые голосуют, должны объяснить хотя бы. Я понятия не имею –

+0

@EJP да вот почему я спрашиваю, как вызвать функцию с именем getExternalFilesDirs (null), если все, что я получил, это String. Я не хочу писать его в обычном Java-классе, потому что это можно увидеть после обратной инженерии. –

ответ

0

попробовать это

File file = new File(getExternalFilesDirs(null).toString()); 
    File[] fileArray = file .listFiles(); 
+0

fileArray = null –

+0

?? покажите мне свой код –

+0

'File file = new File (callDirs(). toString()); Файл [] fileArray = file.listFiles(); ' –

Смежные вопросы