android - 文件包含路径分隔符。

标签 android file

当我尝试检查特定文件是否存在时,我得到 java.lang.illegalArgumentException: File contains a path separator

使用 getFileStreamPath(..) 执行此操作的正确方法是什么?

File file = getActivity().getFileStreamPath("mnt/sdcard/photo/1342147146535.jpg");
   if(file.exists()){
     Toast.makeText(getActivity(), "File exists in /mnt", Toast.LENGTH_SHORT);
}

我还尝试了以下代码来替换上面代码的第一行。这些都不起作用。

File file = getActivity().getFileStreamPath("file:///mnt/sdcard/photo/aviary_1342147146535.jpg");
            File file = getActivity().getFileStreamPath("/mnt/sdcard/photo/1342147146535.jpg");
//          File file = getActivity().getFileStreamPath("mnt/sdcard/photo/1342147146535.jpg");
//          File file = getActivity().getFileStreamPath("file:///mnt/sdcard/photo/1342147146535.jpg");

            if(file.exists()){
            Toast.makeText(getActivity(), "File exists in /mnt", Toast.LENGTH_SHORT);}
            else {
                Toast.makeText(getActivity(), "File NOT exists in /mnt", Toast.LENGTH_SHORT);}

最佳答案

我在尝试使用方法 getFileStreamPath 时遇到了同样的问题。我认为它将文件作为参数,而不是整个路径;这就是它抛出异常的原因。我用下面的方法解决了。

public static Boolean fileExist(Activity activity , String filePath) {
        String finalPath = activity.getFilesDir().toString() + File.separator + filePath;
        File file = new File(finalPath);
        return file.exists();
    }

关于android - 文件包含路径分隔符。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11467359/

相关文章:

c++ - ifstream.eof() 在 C++ 中未评估为真

Bash 逐行读取文本文件并触发 logger 将该行记录到 var/log

Android Orientation change WebView, Cookies need saving

java - 将可序列化的自定义对象读取到文件android中

android - 使用 CSS 在 WebView 中设置 HTML 页面样式

C 如何从命令行参数读取文件

java - 在Java中加载HashMap

android - 在具有多个 Activity 的 Android 应用程序中处理 onActivityResult

android - 如何在改造中处理动态 JSON?

c - 如何在文本文件中添加多行