Apache Commons IO - FilenameUtils

จัดเตรียมวิธีการทำงานกับชื่อไฟล์โดยไม่ต้องใช้ File Object ทำงานบนระบบปฏิบัติการที่แตกต่างกันในลักษณะเดียวกัน คลาสนี้แก้ไขปัญหาเมื่อย้ายจากเครื่องพัฒนาที่ใช้ Windows ไปยังเครื่องผลิตที่ใช้ Unix

การประกาศคลาส

ต่อไปนี้เป็นคำประกาศสำหรับ org.apache.commons.io.FilenameUtils คลาส -

public class FilenameUtils
   extends Object

คุณสมบัติ

คลาสนี้กำหนดส่วนประกอบหกส่วนภายในชื่อไฟล์ พิจารณาตำแหน่งตัวอย่างเช่นC:\dev\project\file.txt. จากนั้นส่วนประกอบคือ -

  • คำนำหน้า - C: \
  • เส้นทางสัมพัทธ์ - dev \ project \
  • เส้นทางสัมบูรณ์ - C: \ dev \ project \
  • ชื่อ - file.txt
  • ชื่อฐาน - ไฟล์
  • ส่วนขยาย - txt

ในการระบุไดเร็กทอรีให้เพิ่มตัวคั่นให้กับชื่อไฟล์

ตัวอย่างคลาส FilenameUtils

IOTester.java

import java.io.IOException;
import org.apache.commons.io.FilenameUtils;

public class IOTester {
   public static void main(String[] args) {
      try {
         //Using FilenameUtils
         usingFilenameUtils();
      } catch(IOException e) {
         System.out.println(e.getMessage());
      }
   }

   public static void usingFilenameUtils() throws IOException {
      String path = "C:\\dev\\project\\file.txt";
      System.out.println("Full Path: " +FilenameUtils.getFullPath(path));
      System.out.println("Relative Path: " +FilenameUtils.getPath(path));
      System.out.println("Prefix: " +FilenameUtils.getPrefix(path));
      System.out.println("Extension: " + FilenameUtils.getExtension(path));
      System.out.println("Base: " + FilenameUtils.getBaseName(path));
      System.out.println("Name: " + FilenameUtils.getName(path));

      String filename = "C:/commons/io/../lang/project.xml";
      System.out.println("Normalized Path: " + FilenameUtils.normalize(filename));
   }
}

เอาต์พุต

มันจะพิมพ์ผลลัพธ์ต่อไปนี้

Full Path: C:\dev\project\
Relative Path: dev\project\
Prefix: C:\
Extension: txt
Base: file
Name: file.txt
Normalized Path: C:\commons\lang\project.xml