Sina.iRoid
دوشنبه 01 دی 1393, 00:06 صبح
سلام دوستان.
ممنون میشم اگر در این زمینه من و راهنمایی کنید.
من درست متوجه فرق متد های getAbsolutePath و getCanonicalPath نمیشم. مثال زیر و نگاه کنید:
import java.io.File;
public class PathTesting {
public static void main(String [] args) {
File f = new File("test/.././file.txt");
System.out.println(f.getPath());
System.out.println(f.getAbsolutePath());
try {
System.out.println(f.getCanonicalPath());
}
catch(Exception e) {}
}
}
و خروجی برنامه هم به این صورت هست:
test\..\.\file.txt
C:\projects\sandbox\trunk\test\..\.\file.txt
C:\projects\sandbox\trunk\file.txt
چرا در CanonicalPath مسیر فایل عوض شده. اگر دقت داشته باشید دیگه از test چیزی نوشته نشده. من این و متوجه نمیشم.
ممنون میشم اگر راهنماییم کنید
ویرایش: یه سوال دیگه اینکه اگر تعداد نقطه ها یک باشه، CanonicalPath تغییری نمی کنه و وقتی که بیش از یک باشه برنامه کرش می کنه. یعنی فقط باید دو تا نقطه باشه. میشه در مورد این نقطه ها هم توضیح بدین. ممنون میشم.
ممنون میشم اگر در این زمینه من و راهنمایی کنید.
من درست متوجه فرق متد های getAbsolutePath و getCanonicalPath نمیشم. مثال زیر و نگاه کنید:
import java.io.File;
public class PathTesting {
public static void main(String [] args) {
File f = new File("test/.././file.txt");
System.out.println(f.getPath());
System.out.println(f.getAbsolutePath());
try {
System.out.println(f.getCanonicalPath());
}
catch(Exception e) {}
}
}
و خروجی برنامه هم به این صورت هست:
test\..\.\file.txt
C:\projects\sandbox\trunk\test\..\.\file.txt
C:\projects\sandbox\trunk\file.txt
چرا در CanonicalPath مسیر فایل عوض شده. اگر دقت داشته باشید دیگه از test چیزی نوشته نشده. من این و متوجه نمیشم.
ممنون میشم اگر راهنماییم کنید
ویرایش: یه سوال دیگه اینکه اگر تعداد نقطه ها یک باشه، CanonicalPath تغییری نمی کنه و وقتی که بیش از یک باشه برنامه کرش می کنه. یعنی فقط باید دو تا نقطه باشه. میشه در مورد این نقطه ها هم توضیح بدین. ممنون میشم.