创建文件和所有父目录

时间:2012-01-21 18:29:11

标签: android file io

是否有一种方法允许在Android 2.1中创建一个新文件,如果相对目录不存在,也可以创建它们? 让我知道,因为这个代码段不起作用:

    static String separator = File.separator;
public static final String DIRECTORYBIGLIETTI = "C:" + separator + "Users" + separator + "7-Spode" + separator + "Documents" + separator + "Android" + separator + "HUVWSZE"; ///sdcard/.SpodeApps/HUVWSZE/
public static final String FILEBIGLIETTI = DIRECTORYBIGLIETTI.concat(separator + "lista.txt");

File cartellainputoutput = new File(DIRECTORYBIGLIETTI);
        if(!cartellainputoutput.exists())
        {
            cartellainputoutput.mkdirs();
        }
        File fileinputoutput = new File(FILEBIGLIETTI);
        if(!fileinputoutput.exists())
            try {
                fileinputoutput.createNewFile();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

我可以要求管理员升级这个网站的图形吗? ;)

2 个答案:

答案 0 :(得分:2)

您需要使用mkdirs()创建目录,然后创建文件。

答案 1 :(得分:1)

为了清楚说明,你不能在Android中使用类似Windows的文件路径(例如C:\Users\7-Spode\Documents\Android\HUVWSZE),你必须使用类似Linux的文件路径(如/data/my.android.application/data_directory/file或{{1} }。

此外,您应该使用getFilesDir()(用于内部存储)和getExternalStorageDirectory()(用于外部存储,例如SD卡)等方法来获取这些目录,然后您可以创建常规/sdcard/directory/file对象并从那里处理它。

示例(带内部存储):

File

另请注意,使用外部存储时,应始终检查外部存储是否不可用(例如,如果SD卡已被移除,或设备已连接  到计算机),使用getExternalStorageState()

有关如何在Android中使用内部和外部存储的详细信息,请阅读this nifty article