文件包含路径分隔符.

Jas*_* O. 10 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);
}
Run Code Online (Sandbox Code Playgroud)

我也尝试了以下代码来替换上面代码的第一行.这些都没有奏效.

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);}
Run Code Online (Sandbox Code Playgroud)

Dip*_*iya 0

为此编写下面的代码。

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

并点击下面的链接了解更多详细信息。

文件路径

  • getFileStreamPath() 无法接受带有文件分隔符的文件名。你会得到一个非法参数异常。 (4认同)