2016-04-11 4 views
1

Ich würde gerne wissen, wie man "Storage Access Framework" verwendet, um neue Ordner auf SD-Karte zu erstellen. Wenn Sie mir den Code geben, wäre es sehr gut. Ich habe bereits andere Fragen und Antworten gesucht, aber nicht gefunden wie.Wie erstellt man einen neuen Ordner in SD-Karte mit Storage Access Framework?

Fügen Sie einige Codes hinzu, die bereits mit der Antwort "CommonsWare" funktionieren. Beachten Sie, dass der einzige Weg, ich fand, dass es neue Ordner in SD-Karte auf meinem Handy SS A5 mit Android OS 5.1.1

public void newFolder(View view) 
    { 
     Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE); 
     startActivityForResult(intent, NEW_FOLDER_REQUEST_CODE); 
    } 

    private static final int NEW_FOLDER_REQUEST_CODE = 43; 

    @Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent resultData) { 
     super.onActivityResult(requestCode, resultCode, resultData); 

     Uri currentUri = null; 

     if (resultCode == Activity.RESULT_OK) 
     { 
      if (requestCode == NEW_FOLDER_REQUEST_CODE) 
      { 
       if (resultData != null) { 
        currentUri = resultData.getData(); 
        DocumentFile pickedDir = DocumentFile.fromTreeUri(this, currentUri); 
        DocumentFile newDir = pickedDir.createDirectory("MyFolder"); 
        textView.setText(newDir.getName()); 
       } 
      } 
     } 
    } 

Antwort

3

Sie erstellen können nicht „erstellen, die auf SD-Karte neuen Ordner“ machen kann. Sie können einen neuen Ordner in einem anderen Ordner erstellen, den der Benutzer auswählt, aber Sie können den Benutzer nicht zwingen, Wechselspeicher auszuwählen.

Um einen neuen Ordner innerhalb eines anderen Ordners zu erstellen, sollte diese Arbeit:

  1. eine Aktivität mit startActivityForResult() auf an ACTION_OPEN_DOCUMENT_TREEIntent, Start

    der Benutzer zu ermöglichen, einen Ordner zu wählen. Fügen Sie FLAG_DIR_SUPPORTS_CREATE ein, um sicherzustellen, dass Sie im Ordner etwas Neues erstellen können.

  2. In onActivityResult(), wickeln Sie die Uri, die Sie in einem DocumentFile bekommen, dann call createDirectory() auf sich einen neuen Ordner als Kind zu schaffen, wie auch immer der Benutzer wählen.

+0

Vielen Dank. Es ist Arbeit. –

Verwandte Themen