file.isFile()||file.isDirectory()-->false

我的学生时代 2016-03-07 09:20:13
问题如下 :


File[] sonFile = file.listFiles();
for (int i = 0; i < sonFile.length; i++)
{
if (sonFile[i].isFile())
{

}
else if (sonFile[i].isDirectory())
{
}
else
{
//http://bbs.csdn.net/topics/310088039
if(sonFile[i].exists())
{}
else
{
Log.e("-->",sonFile[i].getName());
Log.e("-->",sonFile[i].getPath());
}
}
}


输出:

E/-->: .android_secure
E/-->: /storage/sdcard1/.android_secure


什么原因啊?
我就想问问这是什么原因啊,如果说是
...全文
670 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
我的学生时代 2016-03-14
  • 打赏
  • 举报
回复
.android_secure
的特殊性可以 通过百度它本身得到解决 那就结贴了, 这个问题问的真是坑 就是心不静早知道自己百度一波就好了我当时肯定是蒙圈了。
中才德创 2016-03-12
  • 打赏
  • 举报
回复
报错信息是说权限不够
我的学生时代 2016-03-12
  • 打赏
  • 举报
回复
引用 8 楼 wei220000 的回复:
if(sonFile[i].exists()) {} else { Log.e("-->",sonFile[i].getName()); Log.e("-->",sonFile[i].getPath()); } 你这明明是不存在的时候,才进行的输出。。逻辑删除后,系统就已经检测不到了。
~~~还是不太了解~~~ 既然他不存在我是怎么能检索到它的呢? 这个文件时我对文件夹遍历的时候得到的并不是自己创建后又删除的。 如果认为其逻辑删除后系统检测不到 那我的程序是怎么找到它的呢?
wei220000 2016-03-12
  • 打赏
  • 举报
回复
if(sonFile[i].exists()) {} else { Log.e("-->",sonFile[i].getName()); Log.e("-->",sonFile[i].getPath()); } 你这明明是不存在的时候,才进行的输出。。逻辑删除后,系统就已经检测不到了。
我的学生时代 2016-03-12
  • 打赏
  • 举报
回复
引用 6 楼 wei220000 的回复:
物理删除,,逻辑删除。。你想太多了。
你怎么看,能指点下吗
wei220000 2016-03-12
  • 打赏
  • 举报
回复
物理删除,,逻辑删除。。你想太多了。
我的学生时代 2016-03-12
  • 打赏
  • 举报
回复
会不会和 物理 删除和逻辑删除什么的有联系 蒙圈中····
我的学生时代 2016-03-12
  • 打赏
  • 举报
回复

package a114.yangming.myview;

import android.util.Log;

import java.io.File;

/**
 * Created by Tom on 2016/3/12.
 */
public class TestBug
{
    String path = "/storage/sdcard1/.android_secure";
    String sdCardPath = "/storage/sdcard1/";

    public void ifFileExists()
    {
        File sdCard = new File(this.sdCardPath);
        File[] sdCardSons = sdCard.listFiles();
        for (File value : sdCardSons)
        {
            if (value.getPath().equals(this.path))
            {
                Log.e("测试", "遍历得到的路径为:" + value.getPath());
                Log.e("测试", "这说明不是排序模块的问题");

                testMySelf(value);
            }
        }
    }

    public void testMySelf(File file)
    {
        File testFile;
        if (file == null)
        {
            testFile = new File("/这个路径/天马/行空");
        }
        else
        {
            testFile = file;
        }

        if (testFile.isFile())
        {
            Log.e("测试", "扯淡路径被判断为--->文件===" + testFile.getPath());
        }
        else if (testFile.isDirectory())
        {
            Log.e("测试", "扯淡路径被判断为-->文件夹===" + testFile.getPath());
        }
        else
        {
            if (testFile.exists())
            {
                Log.e("测试", "扯淡路径被判断为-->存在===" + testFile.getPath());
            }
            else
            {
                Log.e("测试", "扯淡路径被判断为-->不存在===" + testFile.getPath());
            }
        }
    }

}


//执行:
TestBug test = new TestBug();
test.ifFileExists();
test.testMySelf(null);

结果: E/测试: 遍历得到的路径为:/storage/sdcard1/.android_secure E/测试: 这说明不是排序模块的问题 E/测试: 扯淡路径被判断为-->不存在===/storage/sdcard1/.android_secure E/测试: 扯淡路径被判断为-->不存在===/这个路径/天马/行空
我的学生时代 2016-03-12
  • 打赏
  • 举报
回复
今天想到物理删除 和 逻辑删除,但是又不成体系, 一点头绪都没有
tcmakebest 2016-03-07
  • 打赏
  • 举报
回复
有时候事情很复杂不一定要全部弄为什么, 通过这个示例知道,LINUX系统存在既不是文件,也不是目录的东东.
ganshenml 2016-03-07
  • 打赏
  • 举报
回复
如果文件不存在,你还输出这个文件的名字和路径,不会报空指针异常吗!!!

80,471

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧