Iis correct, once the software is compiled in your case the APK, you cannot use the System.IO library, since those files are not there, for that use the tools provided by Resource.Load Documentation
Now if you still want to read files stored in the device's memory, you must take into account that, depending on the platform, the storage location varies.
For that I use a very simple code:
public const string BaseFolder = "BaseFolder";
public static string getBasePath(){
#if UNITY_EDITOR
string path = Application.dataPath + $"/{BaseFolder}/" ;
string path1 = Application.dataPath + $"/{BaseFolder}";
if (!Directory.Exists(path1)) Directory.CreateDirectory(path1);
if (!Directory.Exists(path)) Directory.CreateDirectory(path);
return path;
#elif UNITY_ANDROID
string path = Application.persistentDataPath + $"/{BaseFolder}/";
string path1 = Application.persistentDataPath + $"/{BaseFolder}";
if (!Directory.Exists(path1)) Directory.CreateDirectory(path1);
if (!Directory.Exists(path)) Directory.CreateDirectory(path);
return path;
#elif UNITY_IPHONE
string path = Application.persistentDataPath + $"/{BaseFolder}/";
string path1 = Application.persistentDataPath + $"/{BaseFolder}";
if (!Directory.Exists(path1)) Directory.CreateDirectory(path1);
if (!Directory.Exists(path)) Directory.CreateDirectory(path);
return path;
#else
string path = Application.dataPath + $"/{BaseFolder}/";
string path1 = Application.dataPath + $"/{BaseFolder}";
if (!Directory.Exists(path1)) Directory.CreateDirectory(path1);
if (!Directory.Exists(path)) Directory.CreateDirectory(path);
return path;
#endif
}