Menentukan Pautan Simbolik dalam Java 1.6
Dalam konteks kelas DirectoryWalker yang berfungsi pada sistem UNIX, menentukan sama ada tika Fail adalah simbolik pautan ke direktori boleh mencabar. Walaupun syarat yang disediakan:
if (file.getAbsolutePath().equals(file.getCanonicalPath()))
boleh berfungsi sebagai penunjuk, ia mungkin tidak boleh dipercayai sepenuhnya.
Pendekatan Alternatif
Lebih dipercayai teknik, yang digunakan dalam Apache Commons, melibatkan membandingkan laluan kanonik direktori induk dengan laluan kanonik fail itu sendiri:
public static boolean isSymlink(File file) throws IOException { if (file.getParent() == null) { canon = file; } else { File canonDir = file.getParentFile().getCanonicalFile(); canon = new File(canonDir, file.getName()); } return !canon.getCanonicalFile().equals(canon.getAbsoluteFile()); }
Di sini, ketidakpadanan antara laluan kanonik dan mutlak menunjukkan kehadiran simbolik pautan. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa algoritma ini bergantung pada andaian berikut:
Jika andaian ini tidak benar, algoritma mungkin tidak menentukan kehadiran pautan simbolik dengan tepat.
Atas ialah kandungan terperinci Berikut ialah beberapa pilihan tajuk, bermain pada \'cabaran\' dan format soalan: * Bagaimana untuk Mengesan Pautan Simbolik dengan Amanah dalam Java 1.6? * Adakah ia Symlink? Kaedah Boleh Dipercayai untuk Java 1.6 Direct. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!