Menentukan Pautan Simbolik dalam Java 1.6
Dalam mengejar direktori yang cekap melintasi dalam persekitaran Java 1.6, menjadi penting untuk membezakan antara yang sebenar direktori dan pautan simbolik ke direktori. Jika objek Fail mewakili direktori, bolehkah keadaan berikut menentukan dengan tepat sama ada ia adalah pautan simbolik?
if (file.getAbsolutePath().equals(file.getCanonicalPath())) { // Real directory } else { // Possible symbolic link }
Jawapan:
Walaupun teknik ini mungkin menunjukkan pautan simbolik, ia tidak dapat memberikan jaminan yang pasti. Ketidakpadanan antara laluan mutlak dan laluan kanonik hanya boleh menyerlahkan keperluan untuk layanan istimewa, dan bukannya mengesahkan pautan simbolik secara konklusif.
Pendekatan Alternatif:
Tawaran Apache Commons penyelesaian yang lebih dipercayai. Ia menentukan sama ada fail ialah pautan simbolik dengan membandingkan laluan kanonik direktori induknya dengan laluan kanoniknya sendiri:
<code class="java">public static boolean isSymlink(File file) throws IOException { File canon; if (file.getParent() == null) { canon = file; } else { File canonDir = file.getParentFile().getCanonicalFile(); canon = new File(canonDir, file.getName()); } return !canon.getCanonicalFile().equals(canon.getAbsoluteFile()); }</code>
Kaedah yang diperhalusi ini menyediakan cara yang lebih tepat untuk mengenal pasti pautan simbolik dengan membandingkan laluan kanonik fail dengan direktori induknya.
Atas ialah kandungan terperinci Bagaimana untuk Menentukan Pautan Simbolik dengan Tepat dalam Java 1.6?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!