0

公式Facebookアプリにはバグがあり、共有インテントで画像を共有しようとすると、画像がSDカードから削除されます。これは、画像のURIを使用してFacebookアプリに画像を渡す必要がある方法です。

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);

元のファイルにリダイレクトされないファイルの正確なコピーを作成する方法を誰かに教えてもらえますか?

4

2 に答える 2

1

チェックしてください:Androidファイルのコピー

ファイルはバイトごとにコピーされるため、古いファイルへの参照は維持されません。

于 2011-11-28T16:46:40.940 に答える
1

ここで、これによりファイルのコピーを作成できるはずです。

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);
    }
}
于 2011-11-28T16:49:51.193 に答える