2015-06-28 113 views
0

我创建了一个需要在我的外部SD卡(extSdCard)上创建文件夹并写入文本文件的Android应用程序。我正在使用Galaxy S4设备,并为此写下了以下代码。我已经知道/ mnt/..文件的路径并为它创建了一个字符串。 android manifest.xml文件使用权限。我已经在Cmd提示符中检查了“adb logcat”中的代码,并且它不会给出任何错误,但不会创建任何文件夹。该设备也被检查与PC不连接。希望你能帮助我。这是代码。我无法写入Android Studio中的外部SD卡(extSdCard)

String externalFilePath="/mnt/extSdCard/tmp"; 

      Log.d(TAG, "externalFilePath is: "+externalFilePath); 

      File myfile = new File(externalFilePath, "Hello"); 
+1

不要使用硬编码路径,并确保你有权限... <使用权限android:name =“android.permission.WRITE_EXTERNAL_STORAGE”/> – Proxytype

+0

你使用的是哪个版本的android? KitKat不允许这样做,但是棒棒糖似乎已经把它带回来了。 – user3711421

+0

我已经添加了权限。尽管可写,但我可以在设备存储中创建文件夹,但不能在SD卡上创建。你的意思是电话设备也有Kitkat或棒棒糖版本?我认为这只是模拟器。 – iripilot

回答

1

试试这个代码来生成您的应用程序包下的文件

File path = getExternalFilesDir(Environment.DIRECTORY_PICTURES); 

//你的需要更换DIRECTORY_PICTURES

File file = new File(path, "Hello"); 

还要确保您所添加的权限

+0

它不会给出错误,但仍然不会以此方式创建任何文件夹。我已经看到了环境选项而不是DIRECTORY_PICTURES,似乎他们将内部设备存储称为下载,文档等选项。 – iripilot

4

首先确保你的线内有manifest,xml ,在application标签之外的某处。

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

然后,你可以写一个File这样做:

File sdcard = Environment.getExternalStorageDirectory(); 
File dir = new File(sdcard.getAbsolutePath() + "/tmp/"); 
// creates if doesn't exists 
dir.mkdir(); 
// create a File 
File file = new File(dir, "Example.txt"); 
FileOutputStream os = outStream = new FileOutputStream(file); 
//this is the text that will be inside of the Example.txt 
String data = "Hello world"; 
os.write(data.getBytes()); 
os.close(); 

希望它能帮助:)