このパス「/mnt/extsd/MyFolder」にディレクトリを作成したいと思います。mkdir() を呼び出すと false が返されます。タブレットに SD カードを挿入し、外部パスを「/mnt/extsd」として取得し、このパスにフォルダーを作成しようとしました。以下は私のコードです、
File lSDCardDirFile = new File("/mnt/extsd/MyFolder");
if (!lSDCardDirFile.exists()) {
System.out.println("Is folder created --- " + lSDCardDirFile.mkdirs());
}
権限を与えました。リムーバブルSDカードである外部SDカードにフォルダを作成したい。Android 4.0 ICS バージョンのデバイスを使用しています。
外部SDカードからパスを取得する別の方法を作成しましたが、
public static String[] getStorageDirectories()
{
String[] lDirs = null;
BufferedReader lBufferReader = null;
try {
lBufferReader = new BufferedReader(new FileReader("/proc/mounts"));
ArrayList list = new ArrayList();
String lStrline;
while ((lStrline = lBufferReader.readLine()) != null) {
if (lStrline.contains("vfat") || lStrline.contains("/mnt")) {
StringTokenizer lTokenizer = new StringTokenizer(lStrline, " ");
String lStrPath = lTokenizer.nextToken();
lStrPath = lTokenizer.nextToken(); // Take the second token, i.e. mount point
if (lStrPath.equals(Environment.getExternalStorageDirectory().getPath())) {
list.add(lStrPath);
}
else if (lStrline.contains("/dev/block/vold")) {
if (!lStrline.contains("/mnt/secure") && !lStrline.contains("/mnt/asec") && !lStrline.contains("/mnt/obb") && !lStrline.contains("/dev/mapper") && !lStrline.contains("tmpfs")) {
list.add(lStrPath);
}
}
}
}
lDirs = new String[list.size()];
for (int i = 0; i < list.size(); i++) {
lDirs[i] = (String) list.get(i);
}
}
catch (FileNotFoundException e) {}
catch (IOException e) {}
finally {
if (lBufferReader != null) {
try {
lBufferReader.close();
} catch (IOException e) {
}
}
}
return lDirs;
}`
このメソッドからパスを取得しましたが、ディレクトリを作成しようとすると、mkdir() が false を返します。