Articles of android file

使Android图库中的图像文件在棒棒糖上可见

我正在尝试在应用程序中显示一些图片(可以在应用程序外部进行共享和查看),但是我想将图片自己保存在应用程序的数据目录中,以便应用程序被删除,所以他们被保存在“{sdcard} / Android / data / {appID} / Pictures / {subfolder} /” )。 我已经看了很多的答案和Android的旧版本,以下解决scheme的工作,但他们似乎并不工作在棒棒糖: MediaScannerConnection.scanFile(this, new String[]{file.toString()}, new String[] { "image/jpeg" }, new MediaScannerConnection.OnScanCompletedListener() { public void onScanCompleted(String path, Uri uri) { Log.i("ExternalStorage", "Scanned " + path + ":"); Log.i("ExternalStorage", "-> uri=" + uri); } }); Uri contentUri = Uri.fromFile(file); Intent mediaScanIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE,contentUri); […]

Android – 将文件从资产复制到/ data / data文件夹

我需要在我的应用程序中使用一些文件。 他们被保存在资产文件夹中。 我在SO上看到了有关文件从资产文件夹复制到内部存储上的/ data / data /的讨论,然后被使用。 我得到的代码,但我没有得到的是,有什么需要将资产复制到内部存储? 如果有人有这方面的经验,帮助!

为什么FileOutputStream抛出FileNotFoundException?

Android开发人员参考( 本页 )说: Throws FileNotFoundException 但是一开始就说: 打开与此Context的应用程序包关联的私有文件以进行写入。 如果文件不存在,则创build该文件。 如果是这样的话, 为什么会抛出FileNotFoundException? 我只是想确保我正确处理所有情况。 我正在使用默认function,所以我可以把它封装在一个try..catch块中,而catch块中什么也不做,因为FileNotFoundException不可能被抛出默认的function。 编辑: “默认function”的例子: String FILENAME = "hello_file"; String string = "hello world!"; FileOutputStream fos = context.openFileOutput(FILENAME, Context.MODE_PRIVATE); fos.write(string.getBytes()); fos.close();

为什么在Android棒棒糖上需要使用getExternalCacheDir()的WRITE_EXTERNAL_STORAGE权限?

我的应用程序将caching文件写入(并读取)到getExternalCacheDir()位置。 在Android棒棒糖之前(API 21)我一直在成功地使用这个权限: <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="18" /> maxSdkVersion在那里,因为API v18之后不需要这个权限: http : //developer.android.com/reference/android/Manifest.permission.html#WRITE_EXTERNAL_STORAGE 但是,在Android棒棒糖(5.0)我得到了像这样的访问权限(我的日志输出显示实际使用的path): 11-19 13:01:59.257 4462-4541/com.murrayc.galaxyzoo.app E/android-galaxyzoo﹕ createCacheFile(): IOException for filename=/storage/emulated/0/Android/data/com.murrayc.galaxyzoo.app/cache/52 java.io.IOException: open failed: EACCES (Permission denied) at java.io.File.createNewFile(File.java:941) at com.murrayc.galaxyzoo.app.provider.ItemsContentProvider.createCacheFile(ItemsContentProvider.java:528) 我在模拟器和Nexus 4上看到了这一点。有没有改变,还是我一直在做错事? 我只想访问我自己的应用程序的caching。 更新:我现在只能在我的设备上看到这个(Nexus 4运行标准的Android 5.1.1,从我第一次有这个问题,甚至有一个新的Android刷新)。 我不再在模拟器中看到这个 – 当然系统映像已经被更新了好几次。

读/写文件到内部专用存储

我将应用程序从Symbian / iPhone移植到Android,其中一部分是将一些数据保存到文件中。 我使用FileOutputStream将文件保存到私有文件夹/ data / data / package_name / files中 : FileOutputStream fos = iContext.openFileOutput( IDS_LIST_FILE_NAME, Context.MODE_PRIVATE ); fos.write( data.getBytes() ); fos.close(); 现在我正在寻找一种方法来加载它们。 我正在使用FileInputStream ,但它允许我逐字节地读取文件,这是非常低效的: int ch; StringBuffer fileContent = new StringBuffer(""); FileInputStream fis = iContext.openFileInput( IDS_LIST_FILE_NAME ); while( (ch = fis.read()) != -1) fileContent.append((char)ch); String data = new String(fileContent); 所以我的问题是如何更好地阅读文件的方式?

在Android中将位图保存为外部存储器中的JPEG文件夹

我使用此代码将位图保存在外部存储中,但是如果它不存在,则不会创build该文件夹: String path = Environment.getExternalStorageDirectory().toString(); OutputStream fOutputStream = null; File file = new File(path + "/Captures/", "screen.jpg"); try { fOutputStream = new FileOutputStream(file); capturedBitmap.compress(Bitmap.CompressFormat.JPEG, 100, fOutputStream); fOutputStream.flush(); fOutputStream.close(); MediaStore.Images.Media.insertImage(getContentResolver(), file.getAbsolutePath(), file.getName(), file.getName()); } catch (FileNotFoundException e) { e.printStackTrace(); Toast.makeText(this, "Save Failed", Toast.LENGTH_SHORT).show(); return; } catch (IOException e) { e.printStackTrace(); Toast.makeText(this, "Save Failed", Toast.LENGTH_SHORT).show(); return; } […]

从外部存储器加载文件到Inputstream

我在我的外部目录中有一个video文件。 我怎么可以加载到inputstreamvariables。 目前我正在读res / raw文件夹中的文件,但是我想从sdcard中读取它。 我也不知道文件的名称,但它的path将通过意图收到。 检查下面的代码 public class SonicTest extends Activity { VideoView videoView; String uri; InputStream soundFile; File file; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } public void play(View view) { new Thread(new Runnable() { public void run() { float speed= (float) 1.0; float pitch= (float) 1.5; float rate= (float) 1.0; […]

Android:外部存储上的mkdirs()/ mkdir()返回false

我被这个疯狂的驱使着: Log.d("STATE", Environment.getExternalStorageState()); File f = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM), "work_data"); Log.d("PATH", f.getAbsolutePath()); if (!f.exists()) { Log.d("MAKE DIR", f.mkdirs() + ""); } 输出日志如下所示: STATE mounted PATH /mnt/sdcard/DCIM/work_data MAKE DIR false 我确保添加正确的权限: <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 但我不知道为什么它不能创build文件夹。 我也一步一步使用mkdir() ,但结果是一样的。 请帮帮我。 我search了这么多,花了至less2天在这个愚蠢的事情。 谢谢你的帮助!! 编辑: 对不起大家! 我在<application>标签中添加了<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 。 这是我的错误! 不过谢谢大家的回复。

使用Dropbox API上传Android文件

如何使用Dropbox API将Dropbox上的文件(graphics,audio和video文件)上传到Android? 我遵循Dropbox SDK Android页面上的教程,可以使示例工作。 但现在,而不是一个string我想上传一个实际的文件对象,并挣扎。 示例代码没有任何问题,看起来像这样: String fileContents = "Hello World!"; ByteArrayInputStream inputStream = new ByteArrayInputStream(fileContents.getBytes()); try { Entry newEntry = mDBApi.putFile("/testing_123456.txt", inputStream, fileContents.length(), null, null); } catch (DropboxUnlinkedException e) { Log.e("DbExampleLog", "User has unlinked."); } catch (DropboxException e) { Log.e("DbExampleLog", "Something went wrong while uploading."); } 但是,当我尝试更改它并上传一个实际的文件与此代码: File tmpFile = new File(fullPath, "IMG_2012-03-12_10-22-09_thumb.jpg"); […]

将文件从SD卡的文件夹复制到SD卡的另一个文件夹中

是否有可能将存在于SD卡中的文件夹复制到以编程方式呈现相同sdcard的另一个文件夹? 如果是的话,该怎么做?