如何检查文件夹是否存在
我正在玩新的Java 7 IOfunction,实际上我试图接收所有文件夹的XML文件。 但是当文件夹不存在时会抛出一个exception,如何检查文件夹是否与新IO一起存在?
public UpdateHandler(String release) { log.info("searching for configuration files in folder " + release); Path releaseFolder = Paths.get(release); try(DirectoryStream<Path> stream = Files.newDirectoryStream(releaseFolder, "*.xml")){ for (Path entry: stream){ log.info("working on file " + entry.getFileName()); } } catch (IOException e){ log.error("error while retrieving update configuration files " + e.getMessage()); } }
使用java.nio.file.Files
:
Path path = ...; if (Files.exists(path)) { // ... }
你可以select传递这个方法的LinkOption
值:
if (Files.exists(path, LinkOption.NOFOLLOW_LINKS)) {
还有一个方法不notExists
:
if (Files.notExists(path)) {
非常简单:
new File("/Path/To/File/or/Directory").exists();
如果你想确定它是一个目录:
File f = new File("/Path/To/File/or/Directory"); if (f.exists() && f.isDirectory()) { ... }
要检查新的IO是否存在目录:
if (Files.isDirectory(Paths.get("directory"))) { ... }
如果文件是目录, isDirectory
返回true
; 如果文件不存在,则为false
,不是目录,或者如果文件是目录,则不能确定。
请参阅: 文档 。
您需要将您的path转换为File
并testing是否存在:
for(Path entry: stream){ if(entry.toFile().exists()){ log.info("working on file " + entry.getFileName()); } }
File sourceLoc=new File("/a/b/c/folderName"); boolean isFolderExisted=false; sourceLoc.exists()==true?sourceLoc.isDirectory()==true?isFolderExisted=true:isFolderExisted=false:isFolderExisted=false;
从文件夹目录的string生成一个文件
String path="Folder directory"; File file = new File(path);
并存在使用方法。
如果你想生成文件夹,你应该使用mkdir()
if (!file.exists()) { System.out.print("No Folder"); file.mkdir(); System.out.print("Folder created"); }
不需要单独调用exists()
方法,因为isDirectory()
隐式地检查目录是否存在。
我们可以检查文件和文件夹。
import java.io.*; public class fileCheck { public static void main(String arg[]) { File f = new File("C:/AMD"); if (f.exists() && f.isDirectory()) { System.out.println("Exists"); //if the file is present then it will show the msg } else{ System.out.println("NOT Exists"); //if the file is Not present then it will show the msg } } }