۲۸ مهر ۱۴۰۴

Techboy

اخبار و اطلاعات روز تکنولوژی

جاوا ۲۵ برای تغییر رفتارهای عملیات فایل در ویندوز

برخی از عملیات فایل در ویندوز برای امنیت و سازگاری در به‌روزرسانی آینده جاوا تغییر کرده‌اند.

برخی از عملیات فایل در ویندوز برای امنیت و سازگاری در به‌روزرسانی آینده جاوا تغییر کرده‌اند.

به‌عنوان بخشی از یک برنامهٔ ارتقاء کیفیت، برخی تغییرات در انتشار برنامه‌ریزی‌شدهٔ Java ۲۵ در رابطه با عملیات فایل در ویندوز در حال آمدن است. دستور

File.delete

دیگر فایل‌های فقط‌قابل‌خواندن را در ویندوز حذف نمی‌کند و عملیات فایل بر روی مسیرهایی که در نام پوشه یا فایل دارای فضای انتهایی هستند، اکنون به‌صورت مداوم در ویندوز شکست می‌خورند.

در یک بولتن ۱۶ ژوئن در وبلاگ inside.java اوراکل، دیوید دلاباسی، مدیر روابط جاوا در اوراکل، گفت که

File.delete

در JDK ۲۵ در ویندوز تغییر کرده است به‌گونه‌ای که اکنون هنگام تنظیم ویژگی فقط‌قابل‌خواندن DOS برای فایل‌های معمولی، اجرا ناموفق می‌شود و مقدار

false

را برمی‌گرداند. پیش از JDK ۲۵،

File.delete

فایل‌های فقط‌قابل‌خواندن را با حذف ویژگی فقط‌قابل‌خواندن DOS قبل از تلاش برای حذف، حذف می‌کرد. اما به‌دلیل این‌که حذف ویژگی و حذف فایل یک عملیات اتمیک نیستند، می‌توانست منجر به باقی ماندن فایل با ویژگی‌های تغییر یافته شود. برنامه‌هایی که به رفتار قبلی متکی بودند باید پیش از حذف فایل‌ها، ویژگی‌های فایل را پاک کنند، گفت دلاباسی.

برای آسان‌تر شدن انتقال، یک ویژگی سیستم معرفی شده است تا رفتار قبلی را بازگرداند. اجرای

File.delete

با

-Djdk.io.File.allowDeleteReadOnlyFiles=true

ویژگی فقط‌قابل‌خواندن DOS را پیش از حذف فایل حذف می‌کند و رفتار ارثی را بازمی‌گرداند.

همچنین در JDK ۲۵، عملیات فایل بر روی مسیری که در نام پوشه یا فایل دارای فضای انتهایی است، اکنون به‌طور مداوم در ویندوز شکست می‌خورد. برای مثال،

File::mkdir

مقدار

false

را برمی‌گرداند یا

File::createNewFile

یک

IOException

پرتاب می‌کند، اگر عنصری در مسیر دارای فضای انتهایی باشد، زیرا چنین نام‌های مسیری در ویندوز قانونی نیستند. پیش از JDK ۲۵، عملیات روی فایلی که از چنین نام مسیر انتزاعی غیرقانونی ایجاد می‌شد، ممکن بود به‌ظاهر موفق به نظر برسد در حالی که در واقع ناخامش می‌آمد، گفت دلاباسی.

اکنون در مرحلهٔ کاهش، JDK ۲۵، نسخهٔ پشتیبانی طولانی‌مدت (LTS)، قرار است به‌طور عمومی در ۱۶ سپتامبر در دسترس باشد.