我的电脑无法看到文件

时间:2014-03-21 13:25:02

标签: android

我有一个Android 4.3设备,并经常通过USB连接到我的PC,以便我可以查看我的一个应用程序创建的文件。奇怪的是,似乎并非android文件系统上的所有文件都可见。经过多次搜索,我遇到this page(如果我错了,请纠正我)建议如果我用我感兴趣的路径调用MediaScannerConnection.scanFile,那么它会使这些目录中的所有文件都可见。我已经实现了如下代码:

void make_files_in_directory_visible_on_pc(String directory)
{
    Log.i("xx","make_files_in_directory_visible_on_pc: dir=["+directory+"]");
    MediaScannerConnection.scanFile(
          getApplicationContext(),
          new String[]{ directory }, // array of paths
          null, // mime types
          new OnScanCompletedListener() {
             @Override
             public void onScanCompleted(String path, Uri uri)
             {
                Log.i("xx","file " + path + " was scanned successfully: " + uri);
             }
          });
}

我的应用将其文件保存在Environment.getExternalStorageDirectory()。getAbsolutePath()中,在我的设备上,它是“/ storage / emulated / 0”。

当我从我的应用程序执行此操作时,我在日志中看到以下内容:

file /storage/emulated/0 was scanned successfully: content://media/external/file/2552

代码运行后,我的电脑上可见的文件列表没有变化,但仍有许多文件丢失。 有什么想法吗?

编辑:仅供参考,我在该目录或我设备上的任何其他地方都没有名为“2552”的文件。

编辑:如果我执行以下操作:

MediaScannerConnection.scanFile(this, new String[] {Environment.getExternalStorageDirectory().getAbsolutePath()+"/"+name_of_individual_file}, null, null);

然后该单个文件确实可见,但我想为目录中的所有文件实现此目的。

1 个答案:

答案 0 :(得分:0)

我已经解决了......

void make_files_in_directory_visible_on_pc(String path)
{   
    File f = new File(path);        
    File file[] = f.listFiles();
    for (int i=0; i < file.length; i++)
    {
        MediaScannerConnection.scanFile(this, new String[] {file[i].getAbsolutePath()}, null, null);
    }
}