在创建之前检查目录/文件是否存在?

时间:2012-11-22 05:16:46

标签: java android eclipse mobile

目前这是我的代码:

    private void writeToSDFile(){

        File root = android.os.Environment.getExternalStorageDirectory(); 
        File dir = new File (root.getAbsolutePath() + "/download");
        dir.mkdirs();
        File file = new File(dir, "myData.txt");


        try {
            FileOutputStream f = new FileOutputStream(file);
            PrintWriter pw = new PrintWriter(f);
            pw.println(d8 + d7 + ":" + d6 + d5 + ":" + d4 + d3 + ":" + d2 + d1);
            pw.flush();
            pw.close();
            f.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
            Log.i(TAG, "******* File not found. Did you" +
                    " add a WRITE_EXTERNAL_STORAGE permission to the manifest?");
        } catch (IOException e) {
            e.printStackTrace();
        }   
    }

基本上,我想知道是否有一种方法(可能通过使用if语句)只创建文件/目录(如果它们不存在)。目前,每次调用writetoSDCard()时都会重新创建它们。

我想要做的就是继续将数据附加到文件的末尾。仅供参考,它的存储方式如下:00:00:00:00

谢谢:)

此外,虽然我在这里,只是一个简单的问题,程序有没有办法说,从txt文档中读取2位数字列表,然后将它们一起添加?例如 20 20 三十 那么屏幕上的结果是70?我还没有找到这样的东西:/

3 个答案:

答案 0 :(得分:3)

试试这个

String FOLDERNAME="/download";
File dir = new File(Environment.getExternalStorageDirectory(), FOLDERNAME);
if(!dir.exists())
{
dir.mkdir();
}

复制并过去

private void writeToSDFile(){

        String FOLDERNAME="/download";
        File dir = new File(Environment.getExternalStorageDirectory(), FOLDERNAME);
        if(!dir.exists())
        {
        dir.mkdir();
        }

    File file = new File(dir, "myData.txt");


    try {
        FileOutputStream f = new FileOutputStream(file);
        PrintWriter pw = new PrintWriter(f);
        pw.println(d8 + d7 + ":" + d6 + d5 + ":" + d4 + d3 + ":" + d2 + d1);
        pw.flush();
        pw.close();
        f.close();
    } catch (FileNotFoundException e) {
        e.printStackTrace();
        Log.i(TAG, "******* File not found. Did you" +
                " add a WRITE_EXTERNAL_STORAGE permission to the manifest?");
    } catch (IOException e) {
        e.printStackTrace();
    }   
}

<强> //////////////////////////////////////////// ///////////////////////// 编辑 对于文件

   File f;
  f=new File(dir, "myData.txt");
  if(!f.exists())
  {
  f.createNewFile();
  }

答案 1 :(得分:1)

String path=Environment.getExternalStorageDirectory()+"/dirpath";
File myDirectory = new File(path);
    if(!myDirectory.isDirectory()){
        myDirectory.mkdirs();
        }

答案 2 :(得分:1)

您可以通过调用exists()的{​​{1}}方法进行检查,或者也可以选择dir/fileisDirectory()

isFile()

你也可以为文件做同样的事情