Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

GetFilesDir() from NDK?

Is there a way to get the application's directory to save private data to a file for my application directly from the NDK? In other words, I need an equivalent of the Java function mContext.getFilesDir().

I have noted that other posts such as this one: Android NDK Write File

mention what is the 'usual' place for this directory to be. But for it to be correct in all versions and all devices, an equivalent system call is surely necessary.

I am currently using a NativeActivity and no Java at all.

Thank you for your time.

like image 285
DJPJ Avatar asked Jun 08 '11 09:06

DJPJ


2 Answers

I have custom helper class for accessing various paths, for the data directory I do this:

  1. Read /proc/self/cmdline or /proc/**MyPID**/cmdline
  2. Append the results from #1 to /data/data/

Example results:

/data/data/com.yourcompany.yourproduct/
like image 190
NuSkooler Avatar answered Oct 20 '22 07:10

NuSkooler


If you are using NativeActivity then you have access from native code to an ANativeActivity instance (see <ndk_root>/platforms/android-9/arch-arm/usr/include/android/native_activity.h) which has internalDataPath and externalDataPath members.

like image 40
jimkberry Avatar answered Oct 20 '22 08:10

jimkberry