Я пытаюсь скопировать файл с помощью android studio и пробовал это, но это не сработало .... может кто-нибудь предложить ошибку, из-за которой я застрял, или предложить мне другой метод для работы с ним .... ниже приведена функция, которая будет программно перемещать ваш файл; ниже - это функция, которая будет программно перемещать ваш файл; ниже - это функция, которая будет программно перемещать ваш файл; ниже - это функция, которая будет программно перемещать ваш файл; ниже - это функция, которая будет программно перемещать ваш файл; будет программно перемещать ваш файл, ниже приведена функция, которая будет программно перемещать ваш файл пакета com.example.ringtone;
public class MainActivity extends AppCompatActivity {
Button button ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button=findViewById(R.id.button);
checkDiskPermission();
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
copyraw("pink_panther.mp3");
copyFiletoExternalStorage(R.raw.pink_panther,"pink.mp3");
}
});
}
private void checkDiskPermission ()
{
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) !=
else
{
Toast.makeText(this, "Has Permissions" , Toast.LENGTH_LONG).show();
}
}
private void copyraw(String filename){
String dirpath= (getExternalFilesDir(null)).getAbsolutePath() + filename;
File dir = new File(dirpath);
if (dir.exists()){
dir.delete();
}else{
AssetManager assetManager=getAssets();
OutputStream out =null;
InputStream in = null;
try {
in=assetManager.open(filename);
File outfile= new File(dirpath,filename);
out =new FileOutputStream(outfile);
copyfile(in ,out);
Toast.makeText(MainActivity.this,"File Copied ",Toast.LENGTH_SHORT).show();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
Toast.makeText(MainActivity.this,"Failed",Toast.LENGTH_SHORT).show();
}finally {
if (in != null){
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (out != null){
try {
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
private void copyFiletoExternalStorage(int resourceId, String resourceName){
String pathSDCard ;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
pathSDCard = getExternalFilesDir(null).getAbsolutePath() + resourceName ;
Toast.makeText(this,pathSDCard,Toast.LENGTH_SHORT).show();
} else {
pathSDCard = Environment.getExternalStorageDirectory() + "/Android/data/" + resourceName;
}
try{
InputStream in = getResources().openRawResource(resourceId);
FileOutputStream out = null ;
out = new FileOutputStream(pathSDCard);
byte[] buff = new byte[1024];
int read = 0;
try {
while ((read = in.read(buff)) > 0) {
out.write(buff, 0, read);
}
} finally {
in.close();
out.close();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
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);
}
}
}