【问题标题】:Android How to use and create temporary folderAndroid 如何使用和创建临时文件夹
【发布时间】:2011-09-29 05:22:29
【问题描述】:

我开发了一个从互联网收集一些数据的应用程序。然后将其保存到临时文件夹。要构建这个应用程序,我需要创建和访问一个文件夹(只是为了应用程序的目的,而不是为了用户)。我该怎么做?

【问题讨论】:

    标签: android android-emulator directory


    【解决方案1】:

    此代码用于创建文件夹:

    File direct = new File(Environment.getExternalStorageDirectory() + "/New Folder");
    
       if(!direct.exists())
        {
            (direct.mkdir()) //directory is created;
    
        }
    

    试试吧

    【讨论】:

      【解决方案2】:
      File mFile;
      

      onCreate()

      mFile= new File(Environment.getExternalStorageDirectory()+"/temp/";
      

      mFile.mkdir();

      onDestroy();

      mFile.delete();
      

      【讨论】:

      【解决方案3】:

      试试这个...

      private void makeFolder(){
      
      File root = new File(Environment.getExternalStorageDirectory()
              + File.separator + getString(R.string.folder_name));
          boolean mainfolderexist = root.exists();
              if (!mainfolderexist) {
                  try {
                      if (Environment.getExternalStorageDirectory().canWrite()) {
                          root.mkdirs();
                      }
                  } catch (Exception e) {
                      e.printStackTrace();
                  }
              }
      }
      

      一切顺利

      【讨论】:

        【解决方案4】:

        你真的应该检查这个其他 SO 答案:https://stackoverflow.com/a/6485850/65716

        除了您必须完全管理您对空间的使用等这一事实之外,在外部存储上进行缓存还需要您的应用获得更多权限。

        http://developer.android.com/reference/android/content/Context.html#getCacheDir()

        “应用程序不需要额外的权限来读取或写入返回的路径,因为该路径存在于它们的私有存储中。”

        【讨论】:

        • 那是创建临时文件。不过和这里问的不太一样……
        • @YuchenZhong 相反,因为问题说明“然后将其保存到临时文件夹”和“仅用于应用程序的目的,而不是用于用户”会将您带到缓存文件。公认的答案充满了许多陷阱和潜在的占用空间的错误。
        【解决方案5】:

        仅供应用使用,如果文件仅供我们的应用使用并且不希望文件浏览器对用户可见,我建议使用Context.getDir() 检索目录。

        // No need to check if exist, created automatically.
        File tempRoot = context.getDir("temp", Context.MODE_PRIVATE); 
        
        // do something
        

        【讨论】:

        • 以及如何在该温度下创建文件。可以吗?或可否认? @LarryHsiao
        • 可以,不需要权限。它将在应用程序内部文件路径中创建。喜欢/data/user/0/package_name/app_temp/。要创建文件,new File(tempRoot, "fileName").createNewFile();
        • 我应该尝试一个...好的@Larry
        猜你喜欢
        • 1970-01-01
        • 2014-09-26
        • 1970-01-01
        • 2018-01-18
        • 1970-01-01
        • 2010-09-17
        • 2016-06-30
        • 1970-01-01
        • 2011-04-24
        相关资源
        最近更新 更多