حافظه جانبی لطفا یکی کمک کنه(حل نشده)
سلام میخواستم بدونم که کار با حافظه جانبی چطوریه در اندروید 5
مثلا می خوام یه پوشه در حافظه خارجی درست کنم و اسمشو تغییر بدم
تو نت خودم کلی سرچ زدم و کد هم نوشتم نمیدونم چرا انجام نمیشه ،یا انجام نمیشه یا برنامه کرش میکنه یا روی حافظه داخلی اعمال میشه یعنی توی حافظه داخلی پوشه میسازه
package com.mycompany.myapp2;
import android.app.*;
import android.os.*;
import java.io.*;
import android.widget.*;
import android.view.*;
import android.util.*;
import java.lang.Process;
public class MainActivity extends Activity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//Button b=(Button)findViewById(R.id.mainButton1);
}
public void btn(View v)
{
//String tmppath="/sdcard1/m";
String tmppath = System.getenv("SECONDARY_STORAGE");
try
{
//this creates a directory named TMP -->OK!
File f=new File(tmppath+"/m");
if(!f.isDirectory())
f.mkdirs();
//this was supposed to rename the directory to .TMP, but isn't working...
Process process=Runtime.getRuntime().exec("mv "+tmppath +" /sdcard1/.m/");
process.waitFor();
Toast.makeText(getApplicationContext(),""+process,Toast.LENGTH_LONG).show();
if (!f.exists()) {
f.mkdirs();
Toast.makeText(this,"Folder "+" created",Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(this,"Folder "+" already exists",Toast.LENGTH_SHORT).show();
}
}
catch(SecurityException e)
{
}
catch(IOException e)
{
}
catch (InterruptedException e)
{
}
}
public void btn2(View v){
//String path = Environment.getExternalStoragePublicDirectory(Environment.) + File.separator + "YourFolderName";
TextView tv=(TextView)findViewById(R.id.mainLinearLayout1);
String storagePath = System.getenv("SECONDARY_STORAGE");
String etFolder="0test";
Log.e("storagePath->",storagePath);
String path = "not available";
if (storagePath != null) {
Log.e("Path->", "" + storagePath);
File file = new File(storagePath.toString());
Log.e("readable->", "" + file.canRead());
Log.e("writable->", "" + file.canWrite());
Log.e("executable->", "" + file.canExecute());
File dir = new File(storagePath + File.separator+etFolder);
if (!dir.exists()) {
dir.mkdirs();
Toast.makeText(this,"Folder "+etFolder+" created",Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(this,"Folder "+etFolder+" already exists",Toast.LENGTH_SHORT).show();
}
path = dir.getPath();
} else {
Toast.makeText(this,"External Storage not available",Toast.LENGTH_SHORT).show();
}
tv.setText("External SDCARD path->" + path);
}
public void btn3(View v){
String sp = System.getenv("SECONDARY_STORAGE");
File folder = new File(sp+"/"+"0a");
//File folder = new File("/sdcard1/"+"/0a");
folder.mkdirs();
if(folder.exists()){
Toast.makeText(getApplicationContext(),"exists",Toast.LENGTH_LONG).show();
}else{
Toast.makeText(getApplicationContext()," not exists",Toast.LENGTH_LONG).show();
}
Toast.makeText(getApplicationContext(),""+folder,Toast.LENGTH_LONG).show();
}
}
یه جور دیگه هم نوشتم ولی کار نمیکنه
String Path = Environment.getExternalStorageDirectory().getPath().toString()+ "/Shidhin/ShidhiImages";
System.out.println("Path : " +Path );
File FPath = new File(Path);
if (!FPath.exists()) {
if (!FPath.mkdir()) {
System.out.println("***Problem creating Image folder " +Path );
}
}
این کد اون جور که تو استک بود پوشه مد نظر رو میسازه تو اس دی کارت. یه تست کنید.
File wallpaperDirectory = new File("/sdcard/Wallpaper/");
// have the object build the directory structure, if needed.
wallpaperDirectory.mkdirs();
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .