簡體   English   中英

如何在SD卡中的音頻文件中執行重命名和刪除操作

[英]How to do Rename and Delete operations in audio file which is in SDcard

在這里,我試圖在列表視圖中顯示所有3Gp文件,然后要在列表項中執行“重命名”和“刪除”操作,因此選擇上下文菜單來解決此問題,我可以在列表中執行操作,但那些操作不會影響SDcard中的音頻文件,建議我這樣做。 這是我執行操作的代碼

    // Use the current directory as title
    path = "/sdcard/";
    if (getIntent().hasExtra("path")) {
        path = getIntent().getStringExtra("path");
    }
    setTitle(path);

    // Read all files sorted into the values-array
    values = new ArrayList();
    File dir = new File(path);
    if (!dir.canRead()) {
        setTitle(getTitle() + " (inaccessible)");
    }
    final String[] list = dir.list();
    if (list != null) {
        for (String file : list) {
            if (file.contains(".3gp")) {
                values.add(file);
            }
        }
    }
    Collections.sort(values);
    // Put the data into the list
    adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_2,
            android.R.id.text1, values);
    setListAdapter(adapter);

    registerForContextMenu(myList);
}

final int CONTEXT_MENU_DELETE = 1;
final int CONTEXT_MENU_RENAME = 2;

@Override
public void onCreateContextMenu(ContextMenu menu, View v,
        ContextMenu.ContextMenuInfo menuInfo) {

    menu.add(Menu.NONE, CONTEXT_MENU_DELETE, Menu.NONE, "Delete");
    menu.add(Menu.NONE, CONTEXT_MENU_RENAME, Menu.NONE, "Rename");

}

@Override
public boolean onContextItemSelected(MenuItem item) {

    AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) item
            .getMenuInfo();
    Long id = myList.getAdapter().getItemId(info.position);
    final int number_of_item_in_listview = Integer.valueOf(id.intValue());
    final int context_menu_number = item.getItemId();

    switch (item.getItemId()) { // retrieves the id of the item clicked. In
                                // this case it can 1,2 or 3 as we declared
                                // it earlier.
    case CONTEXT_MENU_DELETE:

        Toast.makeText(
                this,
                "You selected item " + context_menu_number
                        + " from the context menu", Toast.LENGTH_SHORT)
                .show();
        Toast.makeText(
                this,
                "You removed item " + number_of_item_in_listview
                        + " from the list", Toast.LENGTH_SHORT).show();
        values.remove(number_of_item_in_listview);
        // myadapter.notifyDataSetChanged(); //if this does not work,
        // reinitialize the adapter:
        adapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1, android.R.id.text1,
                values);
        myList.setAdapter(adapter);
        File f = new File(path + filename);
        if (f != null && f.exists()) {
            // delete it
            f.delete();
        }
        return (true);

    case CONTEXT_MENU_RENAME:

        AlertDialog.Builder alert = new AlertDialog.Builder(this);
        alert.setTitle("Rename item");
        alert.setMessage("Enter new name for selected item");

        final EditText input = new EditText(this);
        alert.setView(input);

        alert.setPositiveButton("OK",
                new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog,
                            int whichButton) {
                        String value = input.getText().toString();
                        File f = new File(path + filename);
                        if (f != null && f.exists()) {
                            // delete it
                            f.delete();
                        }
                        values.set(number_of_item_in_listview, value
                                + ".3gp");
                        adapter.notifyDataSetChanged();
                    }
                });

        alert.setNegativeButton("Cancel",
                new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog,
                            int whichButton) {
                    }
                });
        alert.show();
        return (true);
    }

以下代碼對我有用:

File sdcard = Environment.getExternalStorageDirectory();
File from = new File(sdcard,"from.txt");
File to = new File(sdcard,"to.txt");
from.renameTo(to);

並可能在下面的鏈接將幫助您:

http://androidadvices.com/how-to-rename-files-in-android-phone/

它的工作正常:將此代碼放在您要更改名稱的位置。

 File sdcard = new File(Environment.getExternalStorageDirectory(), "sample");
            String fromFullPath = "/username556596268.mp3";
            String toFullPath = "/username.mp3";

            File from = new File(sdcard,fromFullPath);
          File to = new File(sdcard,toFullPath);
            from.renameTo(to);
from.delete();

這里的“ sample”是我的sdcard主目錄名稱,“ fromFullPath”是我的文件名,它位於示例目錄中,“ toFullPath”是我的更改名稱。

暫無
暫無

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

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