ฉันมีเงื่อนไขในการตรวจสอบว่ามีไฟล์อยู่หรือไม่ก่อนดำเนินการต่อ ( ./logs/error.log
) หากไม่พบฉันต้องการสร้างมัน อย่างไรก็ตามจะ
File tmp = new File("logs/error.log");
tmp.createNewFile();
สร้างด้วยlogs/
ถ้ามันไม่มี?
ฉันมีเงื่อนไขในการตรวจสอบว่ามีไฟล์อยู่หรือไม่ก่อนดำเนินการต่อ ( ./logs/error.log
) หากไม่พบฉันต้องการสร้างมัน อย่างไรก็ตามจะ
File tmp = new File("logs/error.log");
tmp.createNewFile();
สร้างด้วยlogs/
ถ้ามันไม่มี?
คำตอบ:
ไม่
ใช้tmp.getParentFile().mkdirs()
ก่อนที่คุณจะสร้างไฟล์
File theDir = new File(DirectoryPath);
if (!theDir.exists()) theDir.mkdirs();
File directory = new File(tmp.getParentFile().getAbsolutePath());
directory.mkdirs();
หากมีไดเรกทอรีอยู่แล้วจะไม่มีอะไรเกิดขึ้นดังนั้นคุณไม่จำเป็นต้องตรวจสอบใด ๆ
สไตล์ Java 8
Path path = Paths.get("logs/error.log");
Files.createDirectories(path.getParent());
เพื่อเขียนลงไฟล์
Files.write(path, "Log log".getBytes());
อ่าน
System.out.println(Files.readAllLines(path));
ตัวอย่างเต็ม
public class CreateFolderAndWrite {
public static void main(String[] args) {
try {
Path path = Paths.get("logs/error.log");
Files.createDirectories(path.getParent());
Files.write(path, "Log log".getBytes());
System.out.println(Files.readAllLines(path));
} catch (IOException e) {
e.printStackTrace();
}
}
}
StringUtils.touch(/path/filename.ext)
ตอนนี้จะ (> = 1.3) จะสร้างไดเร็กทอรีและไฟล์ด้วยหากไม่มีอยู่
FileUtils.touch(new File(file_path))
ไม่และหากlogs
ไม่มีคุณจะได้รับjava.io.IOException: No such file or directory
ความสนุกสำหรับนักพัฒนา Android: เรียกไลค์Files.createDirectories()
และPaths.get()
จะใช้งานได้เมื่อรองรับ min api 26