Как создать независимую и полную копию объекта File? - PullRequest
0 голосов
/ 28 ноября 2011

В официальном приложении Facebook есть ошибка: при попытке поделиться изображением с намерением поделиться оно удаляется с SD-карты.Вот как вы должны передать изображение в приложение Facebook, используя URI изображения:

File myFile= new File(Environment.getExternalStorageDirectory(), "car.jpg");
Uri uri = Uri.fromFile(myFile);
i.putExtra(Intent.EXTRA_STREAM, uri);

Затем, предположим, что если я создаю копию из исходного объекта myFile, и я передаюuri копии в приложение facebook, тогда мое исходное изображение не будет удалено.

Я пытался использовать этот код, но он не работает, исходный файл изображения все еще удаляется:

    File myFile= new File(Environment.getExternalStorageDirectory(), "car.jpg");
    File auxFile=myFile.getAbsoluteFile();      
    Uri uri = Uri.fromFile(auxFile);

Может кто-нибудь сказать мне, как сделать точную копию файла, который не перенаправляет в исходный файл?

Ответы [ 2 ]

1 голос
/ 28 ноября 2011

Здесь, это должно быть в состоянии создать копию вашего файла:

private void CopyFile() {

        InputStream in = null;
        OutputStream out = null;
        try {
          in = new FileInputStream(<file path>);
          out = new FileOutputStream(<output path>);
          copyFile(in, out);
          in.close();
          in = null;
          out.flush();
          out.close();
          out = null;
        } catch(Exception e) {
            Log.e("tag", e.getMessage());
        }       
}
private void copyFile(InputStream in, OutputStream out) throws IOException {
    byte[] buffer = new byte[1024];
    int read;
    while((read = in.read(buffer)) != -1){
      out.write(buffer, 0, read);
    }
}
1 голос
/ 28 ноября 2011

Пожалуйста, проверьте: Копия файла Android

Файл копируется побайтно, поэтому ссылка на старый файл не сохраняется.

...