Перемещение файла на новое место с последующим удалением предыдущего файла. - PullRequest
1 голос
/ 21 ноября 2011

Я хочу переместить файл из одного пути в другой путь, но вместо того, чтобы переместить его, скопируйте файл в новое место. Просьба предоставить любые подсказки

Заранее спасибо

 MovePngToPreviewDir pngToPreviewDir = new MovePngToPreviewDir(null, "png");

                File[] listOfPNGFiles = RootDir.listFiles(pngToPreviewDir);

                for(File file:listOfPNGFiles){
                    Log.e("PNG = ",file.getAbsolutePath());
                    Log.e("PNG = ",file.getName());
                    if(previewDiagramDir == null){
                        Log.e("Preview Diagram Dir is NULL","Preview Diagram DIR is NULL");
                    }
                    if(file!= null && previewDiagramDir != null){
                        Log.e("Preview Diagram Dir",previewDiagramDir.getAbsolutePath()+"/");

                        if(file.renameTo(new File(previewDiagramDir, file.getName()))){
                            Log.e("PNG File is successfully Moved",file.getName());



                        }else{
                            Log.e("Error in Moving PNG File","Error in Moving PNG file");
                        }


                    }else{

                    }

Ответы [ 3 ]

4 голосов
/ 21 ноября 2011

Если вы хотите скопировать файл в другое место, вы можете использовать file.renameTo() метод класса File, связанный с вашим объектом istance file, пытаясь это:

file.renameTo(new File("new_directory_to_copy_file"+file.getName())); 

После копированияфайл, вы можете удалить его с помощью file.delete();.

Примечание : метод delete() возвращает логический объект, затем вы можете проверить правильность удаления файла с помощью:

boolean del = file.delete();

if(del) System.out.println("File "+file.getName()+" deleted!");
else System.out.println("File "+file.getName()+"not deleted!");

Об API класса File: http://download.oracle.com/javase/6/docs/api/java/io/File.html

1 голос
/ 21 ноября 2011

Используйте file.delete() после того, как файл скопирован в другое место, чтобы он полностью переместился в новое место.

0 голосов
/ 21 августа 2015

Я переместил файлы в каталог назначения и после перемещения удалил эти перемещенные файлы из исходной папки тремя способами, и наконец я использую третий подход в моем проекте.

1-й подход:

File folder = new File("SourceDirectory_Path");
File[] listOfFiles = folder.listFiles();
for (int i = 0; i < listOfFiles.length; i++) {
Files.move(Paths.get("SourceDirectory_Path"+listOfFiles[i].getName()), Paths.get("DestinationDerectory_Path"+listOfFiles[i].getName()));
}
System.out.println("SUCCESS");

2-й подход:

Path sourceDir = Paths.get("SourceDirectory_Path");
Path destinationDir = Paths.get("DestinationDerectory_Path");
  try(DirectoryStream<Path> directoryStream =   Files.newDirectoryStream(sourceDir)){
    for (Path path : directoryStream) {
        File d1 = sourceDir.resolve(path.getFileName()).toFile();
         File d2 = destinationDir.resolve(path.getFileName()).toFile(); 
         File oldFile = path.toFile();
        if(oldFile.renameTo(d2)){
            System.out.println("Moved");
        }else{
            System.out.println("Not Moved");
        }
    }
}catch (Exception e) {
    e.printStackTrace();
}

3-й подход:

Path sourceDirectory= Paths.get(SOURCE_FILE_PATH);
        Path destinationDirectory = Paths.get(SOURCE_FILE_MOVE_PATH);
        try (DirectoryStream<Path> directoryStream = Files.newDirectoryStream(sourceDirectory)) {
            for (Path path : directoryStream) {                                    
                Path dpath = destinationDirectory .resolve(path.getFileName());                                    
                Files.move(path, dpath, StandardCopyOption.REPLACE_EXISTING);
            }
        } catch (IOException ex) {
            ex.printStackTrace();   
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...