簡體   English   中英

在android中制作目錄

[英]Make directory in android

我試圖在 android 的 SD 卡上建立一個名為“images”的目錄。 這是我的代碼,但它不起作用? 誰能給我一些建議?

File picDirectory = new File("mnt/sdcard/images");
picDirectory.mkdirs();

更新:自 Android 10,11 Storage 更新以來,Google 已通過標准編程語言文件操作限制 Storage 訪問。

對於僅針對 Android 10 (API 29) 及更高版本的應用程序,您需要在您的 android 清單文件中聲明“requestLegacyExternalStorage="true"”以使用基於編程語言的文件操作。

<application android:requestLegacyExternalStorage="true" ....>

==========

您想確保您正確地找到了 SDCard 的地址,但您無法確定它始終位於任何特定地址。 你會想做以下事情!

File directory = new File(Environment.getExternalStorageDirectory()+File.separator+"images");
directory.mkdirs();

讓我知道這是否適合您!

您還需要在AndroidManifest.xml以下行

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

我用這個來知道結果:

File yourAppDir = new File(Environment.getExternalStorageDirectory()+File.separator+"yourAppDir");

    if(!yourAppDir.exists() && !yourAppDir.isDirectory()) 
    {
        // create empty directory
        if (yourAppDir.mkdirs())
        {
            Log.i("CreateDir","App dir created");
        }
        else
        {
            Log.w("CreateDir","Unable to create app dir!");
        }
    }
    else
    {
        Log.i("CreateDir","App dir already exists");
    }

你可以使用這個:

File directory = new File(Environment.getExternalStorageDirectory() + "/images");
directory.mkdirs();

Environment.getExternalStorageDirectory()已棄用。 所以你應該使用這個:

File directory = new File(this.getExternalFilesDir(null).getAbsolutePath() + "/YourDirectoryName");
directory.mkdirs();

值得注意的一件事是,如果您總是從 mkdirs() 得到 false,請嘗試從 PC 上拔下您的設備,看看它是否可以創建文件夾。 至少我嘗試過,它對我有用,目前我正在尋找解決此問題的方法。

要創建特定的根目錄及其子文件夾,我使用此代碼

String root = Environment.getExternalStorageDirectory().toString();//get external storage

File myDir = new File(root + "/grocery"+"/photo/technostark");//create directory and subfolder

File dir=new File(root + "/grocery"+"/data");//create subfolder

myDir.mkdirs();

dir.mkdirs();

要在 sd 卡內創建文件,您必須使用Environment.getExternalStorageDirectory()

   /**
     * Creates a new directory inside external storage if not already exist.
     *
     * @param name The directory name
     */
    public static void createNewDirectory(String name) {
            // create a directory before creating a new file inside it.
            File directory = new File(Environment.getExternalStorageDirectory(), name);
            if (!directory.exists()) {
                directory.mkdirs(); 
            }
        }

以下兩個重要參數可幫助您創建目錄 1. directory.mkdirs() :

創建由此文件命名的目錄,必要時創建缺少的父目錄。 2. directory.mkdir() :

創建由此文件命名的目錄,假設其父目錄存在。

有關getExternalStorageDirectory()工作原理的更多信息,請參閱鏈接

這應該有幫助。
首先獲取外部存儲的路徑:

File root=Environment.getExternalStorageDirectory();

然后:

File picDirectory = new File(root.getAbsolutePath(), "mnt/sdcard/images");
picDirectory.mkdirs();           

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM