2017-06-27 6 views
0

Ich habe einen Ordner und einige JSON-Datei in SD-Karte über programmgesteuert erstellt, es erstellt den Ordner und die Datei kein Problem, aber es zeigt nur auf mobilen Dateiverzeichnis, Es wird nicht im System nach dem Verbinden meines Handys mit dem System angezeigt. Wenn ich den gleichen Ordner in Mobile kopiere und einfüge, dann wird im System der kopierte Ordner angezeigt, nur der ursprüngliche Ordner wird noch nicht angezeigt. Als Referenz habe ich meine Bilder für das mobile und das Systemverzeichnis hinzugefügt.Wie lösche ich die Musikdatei auf der SD-Karte und wie erstelle ich eine neue Datei?

here in mobile original and copied folders are showing

here only copied folder only showing

Gleiche wie das, einige Musikdateien, die ich in SD-Karte habe, dass man mich löschen versuchen.

Pfad = (SD-Dateipfad) Datei SongFile = neue Datei (Pfad); songFile.delete();

Diese Funktion löscht die Datei korrekt auf meiner SD-Karte. Aber nach dem Löschen auch in meinem System zeigt es, wenn ich versuche zu spielen, zeigt einen Fehler. Diese gelöschte Datei wurde nicht ordnungsgemäß gelöscht. Nach dem Löschen bekomme ich auch die gleiche Datei programmatisch in meiner Anwendung.

In meiner Anwendung zeigt auch gelöschte Dateien Name und Details.

Antwort

0

Ich vermute, dass Sie den Eintrag aus dem Media Store nicht gelöscht haben und dies ist der Grund, warum Sie es immer noch sehen.

  • die _id des Eintrags Lass es durch data Parameter mit den oben _id

Hier ein Ausschnitt mit ContentResolver

  • Löschen Sie den Eintrag suchen:

    public void deleteFromMediaStore(Context context, String pathToDelete) { 
         ContentResolver contentResolver = context.getContentResolver(); 
         if (contentResolver != null) { 
          Cursor matchingIndex = contentResolver.query(Media.EXTERNAL_CONTENT_URI, new String[]{"_id", "_data"}, "_data = ?", new String[]{pathToDelete}, null); 
    
          if(matchingIndex != null && matchingIndex.getCount() > 0) { 
           matchingIndex.moveToFirst(); 
           while (!matchingIndex.isAfterLast()) { 
            context.getContentResolver().delete(ContentUris.withAppendedId(Media.EXTERNAL_CONTENT_URI, (long) matchingIndex.getInt(matchingIndex.getColumnIndex("_id"))), null, null); 
            matchingIndex.moveToNext(); 
           } 
           matchingIndex.close(); 
          } 
         } 
        } 
    
  • +0

    Hallo, danke für deine Antwort. Jetzt löscht es richtig und löscht die funktionierende Funktion. –

    +0

    Ich habe einen Ordner und einige JSON-Datei in SD-Karte über programmgesteuert erstellt, es erstellt den Ordner und die Datei kein Problem, aber es zeigt nur auf mobilen Dateiverzeichnis, Es wird nicht im System nach dem Verbinden meines Handys mit dem System angezeigt. Wenn ich den gleichen Ordner in Mobile kopiere und einfüge, dann wird im System der kopierte Ordner angezeigt, nur der ursprüngliche Ordner wird noch nicht angezeigt. Als Referenz habe ich meine Bilder für das mobile und das Systemverzeichnis hinzugefügt. In meiner Frage habe ich Referenzbilder hinzugefügt –

    +0

    @RegunathSiva Ich denke, Sie sollten sich nicht darum kümmern, es ist ziemlich häufig. Starten Sie das Gerät neu und zeigen Sie Show fein – fillobotto