如何创建隐藏文件夹

6

我想创建一些隐藏文件夹,就像照片隐藏应用程序一样,并将所选图像从相册或相机隐藏到所选的隐藏文件夹中。我搜索了很多,但是找不到任何解决方案。请帮我找到一个解决方案。 提前致谢。


嘿@jay!如果其中一个答案是对你的问题的良好回应,请继续接受它作为正确答案! :) - Max
5个回答

9
我的要求是当我将文件添加到隐藏文件夹中时,这些文件不应该在相册中显示,但隐藏的文件夹和文件应该只在我的应用程序中显示。
  1. To create hidden folders or files follow Hamid S. instructions:

    File file = new File(Environment.getExternalStorageDirectory().getPath() + "/.Image/");
    file.mkdirs();
    
  2. To prevent the eg. gallery app from showing pictures within /.Image/, create the additional (empty) file .nomedia

这可以防止媒体扫描器读取您的媒体文件,并通过MediaStore内容提供程序将它们提供给其他应用程序。但是,如果文件真正是私有的,则应将它们保存在应用专用目录中。


3

要创建隐藏的文件夹或文件,请使用名称中带有点 (.)的文件夹或文件名。

假设您想创建一个名为Image的文件夹并将其隐藏,则可以按以下方式创建...

File file = new File(Environment.getExternalStorageDirectory().getPath() + "/.Image/");
file.mkdirs();

感谢您的回复。现在我能够创建隐藏文件夹和文件了,但我的要求是当我将文件添加到隐藏文件夹时,它们不应该在图库中显示,而只应该在我的应用程序中显示隐藏文件夹和文件。 - jay
这段代码在除了Android 4.4设备之外的所有设备上都能正常工作。在Android 4.4设备中,sdcard(.)文件夹也是可见的,我们该如何隐藏这些(.)文件夹呢? - jay

2

尝试这段代码:

String iconsStoragePath = Environment.getExternalStorageDirectory() + "/.NewFolder";
    File sdIconStorageDir = new File(iconsStoragePath);
    if(!sdIconStorageDir.isDirectory()){
        sdIconStorageDir.mkdirs();//create storage directories, if they don't exist
    }

1
尝试像这样使用函数...
public static void hideFile(File file)
{
        File dstFile = new File(file.getParent(), "." + file.getName());
        file.renameTo(dstFile);
}

感谢您的回复。现在我能够创建隐藏文件夹和文件了,但我的要求是当我将文件添加到隐藏文件夹时,它们不应该在图库中显示,而只应该在我的应用程序中显示隐藏文件夹和文件。 - jay
这是一个全新的问题,请发布新的问题。如果我的答案解决了您的问题,您可以接受它。 - Akshay
这段代码在除了Android 4.4设备之外的所有设备上都能正常工作。在Android 4.4设备中,sdcard(.)文件夹也是可见的,我们该如何隐藏这些(.)文件夹呢? - jay

0
在Android中,以及大多数Linux环境中,您可以通过在文件夹名称前面添加“.”来创建一个隐藏文件夹。例如,文件夹“.MyFolder”将被隐藏。

谢谢您的回复,我该如何在我的应用程序中获取未隐藏/可见的文件夹和文件列表,并且这些文件和文件夹不应在设备图库中可见。 - jay
默认情况下,任何隐藏的文件/文件夹都无法在图库中查看。如果要全局取消隐藏文件夹,只需将其重命名为前面没有“。”的名称即可。如果您想在隐藏的文件夹中传播您的应用程序中的图像,可以在创建后将隐藏文件夹的路径保存在SharedPreferences中以便以后使用。只要您拥有访问文件的适当权限,就可以在应用程序中查看这些保存路径中的文件。 - jsoberg
这段代码在除了Android 4.4设备之外的所有设备上都能正常工作。在Android 4.4设备中,sdcard(.)文件夹也是可见的,我们该如何隐藏这些(.)文件夹呢? - jay

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接