Переименовать папку на SD-карте - PullRequest
4 голосов
/ 02 мая 2011

Это должно быть, якобы, очень простая задача, но я уже некоторое время безуспешно ...

В моем приложении я создаю папку на SD-карте, где храню временные файлы jpg. Поскольку я не хочу, чтобы мое приложение показывало эти временные файлы при просмотре изображений в телефоне, я пытался скрыть эту папку. Итак, сразу после создания каталога я попытался переименовать его, например:

String tmppath="/sdcard/myapp/tmp";
try
{
//this creates a directory named TMP -->OK!
 File f=new File(tmppath); 
  if(!f.isDirectory())  
   f.mkdirs();  

//this was supposed to rename the directory to .TMP, but isn't working...

Process process=Runtime.getRuntime().exec("mv "+tmppath +" /sdcard/myapp/.tmp/");
process.waitFor();
}
catch(SecurityException e)
{
}
catch(IOException e)
{
} 
catch (InterruptedException e) 
{
}

Есть мысли?

Ответы [ 3 ]

15 голосов
/ 02 мая 2011
File file = new File("your old file name");
File file2 = new File("your new file name");
boolean success = file.renameTo(file2);
6 голосов
/ 13 июля 2011
final File F=new File("youroldpath");  
String newname="newname";  
File newfile=new File(F.getParent(),newname);  
F.renameTo(newfile);
2 голосов
/ 02 мая 2011

Вы пытались использовать метод renameTo в файле? Здесь - пример переименования файла или папки.

package com.tutorialspoint;

import java.io.File;

public class FileDemo {
   public static void main(String[] args) {

      File f = null;
      File f1 = null;
      boolean bool = false;

      try{      
         // create new File objects
         f = new File("C:/test.txt");
         f1 = new File("C:/testABC.txt");

         // rename file
         bool = f.renameTo(f1);

         // print
         System.out.print("File renamed? "+bool);

      }catch(Exception e){
         // if any error occurs
         e.printStackTrace();
      }
   }
}
...