2012-08-04 72 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

我强烈建议您考虑避免使用java.io.File来支持Java 7中引入的新API。特别是,[here](http://docs.oracle.com/javase /tutorial/essential/io/check.html)是解决此问题的相关Sun Java Trail教程。重要的方法是[Files.exists](http://goo.gl/SRTWb)。 – oldrinb 2012-08-04 05:34:24

回答

0

尝试使用方法......

file.isFile() 

的Javadoc说

测试此抽象路径名表示的文件是否是一个正常的文件。如果文件不是目录,并且此外还满足其他系统相关标准,则该文件是正常的。任何由Java应用程序创建的非目录文件都将保证为普通文件。

+0

也使用它的同样的问题。 – 2012-08-04 05:33:43

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; 
     } 



    }