我有一个需要传递文件对象的jar文件。如何将资源或资产以文件对象的形式传递给该方法?
如何将项目文件夹中的资产或原始文件转换为文件对象?
我有一个需要传递文件对象的jar文件。如何将资源或资产以文件对象的形式传递给该方法?
如何将项目文件夹中的资产或原始文件转换为文件对象?
以下是我所做的:
将您的资产文件复制到SD卡中:
AssetManager assetManager = context.getResources().getAssets();
String[] files = null;
try {
files = assetManager.list("ringtone"); //ringtone is folder name
} catch (Exception e) {
Log.e(LOG_TAG, "ERROR: " + e.toString());
}
for (int i = 0; i < files.length; i++) {
InputStream in = null;
OutputStream out = null;
try {
in = assetManager.open("ringtone/" + files[i]);
out = new FileOutputStream(basepath + "/ringtone/" + files[i]);
byte[] buffer = new byte[65536 * 2];
int read;
while ((read = in.read(buffer)) != -1) {
out.write(buffer, 0, read);
}
in.close();
in = null;
out.flush();
out.close();
out = null;
Log.d(LOG_TAG, "Ringtone File Copied in SD Card");
} catch (Exception e) {
Log.e(LOG_TAG, "ERROR: " + e.toString());
}
}
然后通过路径读取您的文件:
File ringFile = new File(Environment.getExternalStorageDirectory().toString() + "/ringtone", "fileName.mp3");
完成了。您现在拥有了资产文件的文件对象副本。希望这对您有所帮助。
我不知道有什么方法可以获取实际的File
对象,但如果您可以使用FileDescriptor
进行操作,您可以这样做:
FileDescriptor fd = getAssets().openFd(assetFileName).getFileDescriptor();