【问题标题】:Check if file exists on SD card on Android检查Android上的SD卡上是否存在文件
【发布时间】:2011-10-08 15:01:42
【问题描述】:

我想检查 SD 卡上是否存在文本文件。文件名为 mytextfile.txt。下面是代码:

FileOutputStream fos = openFileOutput("sdcard/mytextfile.txt", MODE_WORLD_WRITEABLE);

如何检查该文件是否存在?

【问题讨论】:

    标签: android


    【解决方案1】:

    这应该可以解决问题,我已将硬编码的 SD 卡引用替换为推荐的 API 调用 getExternalCacheDir()

    File file = new File(getExternalCacheDir(), "mytextfile.txt" );
    if (file.exists()) {
      //Do action
    }
    

    【讨论】:

    • 请注意:getExternalCacheDir() 可能不是您想要的。如果您想要在卸载应用程序后清除 sd 上的目录(例如“缓存”目录),请使用 getExternalCacheDir()。但是如果你想要 sd 卡的顶级目录,那么你可能会更好地使用: File sdDir = new File(Environment.getExternalStorageDirectory().getPath());
    【解决方案2】:

    在 android 中查看此文件系统:Working with SDCard’s filesystem in Android

    你检查一下

    if(file.exists()){
    //
    }
    

    【讨论】:

      【解决方案3】:

      *使用它可以检查文件是否存在于 sdcard *

      File file = new File(sdcardpath+ "/" + filename);
      if (file.exists())
       {
      
      }
      

      【讨论】:

        【解决方案4】:

        您必须创建一个文件,并将其设置为所需的文件,并检查它是否存在。

        String FILENAME="mytextfile.txt";
        File fileToCheck = new File(getExternalCacheDirectory(), FILENAME);
        if (fileToCheck.exists()) {
        FileOutputStream fos = openFileOutput("sdcard/mytextfile.txt", MODE_WORLD_WRITEABLE);
        }
        

        玩得开心!

        【讨论】:

        • 最好不要使用对 SD 卡的硬编码引用,有关访问外部存储的更好方法,请参阅我之前的回答。
        【解决方案5】:

        如果指定的文件不存在,FileOutputStream 构造函数将抛出FileNotFound 异常。请参阅Oracle documentation 了解更多信息。

        另外,请确保您拥有access the SD card 的权限。

        【讨论】:

          【解决方案6】:

          使用布尔类型检查 IF 条件,如

          File file = new File(path+filename);
          if (file.exists() == true)
          {
          //Do something
          }
          

          【讨论】:

          • == true 在上面的代码中是多余的。你可以改用if (file.exists())
          猜你喜欢
          • 1970-01-01
          • 2011-02-07
          • 2011-10-28
          • 2011-05-16
          • 2012-07-02
          • 1970-01-01
          • 2014-11-05
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多