2012-08-04 3 views
0

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

String fileName=FNameTextField.getText(); 

File file=new File(fileName); 

if(file.exists()&& !file.isDirectory()) { 
    // It returns true if File or directory does exist 
    System.out.println("the file or directory you are searching does exist : "); 

}else{ 
    // It returns true if File or directory not exists 
    System.out.println("the file or directory you are searching does not exist : "); 
} 

Спасибо.

+0

Я _strongly_ предлагаю вам рассмотреть возможность избежать использования 'java.io.File' в пользу нового API, введенного в Java 7. В частности, [здесь] (http://docs.oracle.com/javase /tutorial/essential/io/check.html) является соответствующим учебником Sun Java Trail для решения этой проблемы. Важным является метод [Files.exists] (http://goo.gl/SRTWb). – oldrinb

ответ

0

Попробуйте использовать метод ...

file.isFile() 

Javadoc говорит

тестов, является ли файл обозначается этим абстрактным именем путем обычного файлом. Файл является нормальным, если он не является каталогом и, кроме того, удовлетворяет другим системным критериям. Любой файл без каталога, созданный приложением Java, гарантированно является нормальным файлом.

+0

такой же проблема используя это тоже. –

0

Ваша логика проверяет, следует ли видеть, только если это файл. Он НЕ будет возвращать true, если каталог с именем существует, как вы подразумеваете в своих заявках на печать.

0

использование сделать из этого примера, который принимает для вас:

File f = new File(filePathString); 
if(f.exists()) { /* do something */ } 


     (or) 

import java.io.*; 

public class FileChecker { 

    public static void main(String args[]) { 

     File f = new File("c:\\mkyong.txt"); 

     if(f.exists()){ 
      System.out.println("File existed"); 
     }else{ 
      System.out.println("File not found!"); 
     } 

    } 

} 

       (or) 

import java.io.*; 

public class FileOrDirectoryExists{ 
    public static void main(String args[]){ 
    File file=new File("Any file name or 
    directory whether exists or not"); 
    boolean exists = file.exists(); 
    if (!exists) { 
    // It returns false if File or directory does not exist 
    System.out.println("the file or directory 
    you are searching does not exist : " + exists); 

    }else{ 
    // It returns true if File or directory exists 
    System.out.println("the file or 
    directory you are searching does exist : " + exists); 
    } 
    } 
} 
1

Ваша логика, кажется, все поддатый, или, по крайней мере, я не могу сделать головы или хвосты него

if (file.exists()) { 
    if (file.isDirectory) { 
     System.out.println("Directory already exists"); 
    } else { 
     System.out.println("File exists"); 
    } 
} else { 
    System.out.println("Could not find a file or directory matching your request"); 
} 
0

1. Первый получить все файлы в папке и сохранить его в ArrayList.

Например:

File f = new File("d:\\MyFolder); 

    File[] fArr = f.listFiles(); 

    ArrayList<File> fList = new ArrayList<File>(); 

    for (File file : fArr){ 

     if (file.isFile()){ 

       fList.add(file); 

      }else{ 

       continue; 

      } 

    } 

2. Теперь используйте getName() метод, чтобы проверить файл существует или нет ....

Предположим вы ищете файл с именем "vivek.txt"

Например:

boolean b = false;

for (File i : fList){ 


    if ((i.getName).equals("vivek.txt")){ 


      b = true; 
      break; 


     } 

    else{ 

       continue; 
     } 



    } 
Смежные вопросы