文件包含路径分隔符。

时间:2012-07-13 09:05:04

标签: 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);}

2 个答案:

答案 0 :(得分:2)

当我尝试使用方法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();
    }

答案 1 :(得分:1)

在下面写下代码。

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

请点击以下链接了解更多详情。

File Path