জাভা File.renameTo()সমস্যাযুক্ত, বিশেষত উইন্ডোজে, এটি মনে হয়। যেমন এপিআই ডকুমেন্টেশন বলে,
এই পদ্ধতির আচরণের অনেকগুলি দিক অন্তর্নিহিত প্ল্যাটফর্ম-নির্ভর: পুনরায় নামকরণ অপারেশন একটি ফাইল সিস্টেম থেকে অন্য কোনও ফাইল স্থানান্তর করতে সক্ষম নাও হতে পারে, এটি পারমাণবিক নাও হতে পারে, এবং গন্তব্য বিমূর্ত পথের নামের কোনও ফাইল যদি এটি সফল নাও হতে পারে আগে থেকেই আছে. পুনরায় নামকরণ অপারেশন সফল হয়েছে তা নিশ্চিত করতে রিটার্ন মানটি সর্বদা পরীক্ষা করা উচিত।
আমার ক্ষেত্রে, আপগ্রেড পদ্ধতির অংশ হিসাবে, আমাকে একটি ডিরেক্টরি সরিয়ে নিতে (পুনর্নবীকরণ) করতে হবে যাতে গিগা বাইটের ডেটা থাকতে পারে (প্রচুর সাব-ডিরেক্টরি এবং বিভিন্ন আকারের ফাইল)। সরানোটি সর্বদা একই পার্টিশন / ড্রাইভের মধ্যে সম্পন্ন হয়, সুতরাং ডিস্কের সমস্ত ফাইলের শারীরিকভাবে স্থানান্তরিত করার কোনও সত্যিকারের প্রয়োজন নেই।
সেখানে করা উচিত নয় Dir বিষয়বস্তু কোনো ফাইল কেশ সরানো যাবে হতে, কিন্তু এখনও বেশ প্রায়ই, renameTo () তার কাজ এবং আয় মিথ্যা করতে ব্যর্থ। (আমি কেবল অনুমান করছি যে সম্ভবত কিছু ফাইল লকগুলি উইন্ডোজে কিছুটা নির্বিচারে মেয়াদোত্তীর্ণ হয়ে গেছে))
বর্তমানে আমার কাছে একটি ফালব্যাক পদ্ধতি রয়েছে যা অনুলিপি এবং মুছে ফেলা ব্যবহার করে, তবে এটি সফল হয় কারণ ফোল্ডারের আকারের উপর নির্ভর করে এটি অনেক বেশি সময় নিতে পারে । আমি সম্ভবত এই ঘটনার জন্য ডকুমেন্টিংয়ের বিষয়েও বিবেচনা করছি যে ব্যবহারকারীরা সম্ভাব্যভাবে কয়েক ঘন্টা অপেক্ষা করা এড়াতে ম্যানুয়ালি ফোল্ডারটি সরাতে পারে। তবে সঠিক পথটি অবশ্যই কিছুটা স্বয়ংক্রিয় এবং দ্রুত হবে।
সুতরাং আমার প্রশ্নটি হ'ল আপনি কি উইন্ডোতে জাভা দিয়ে দ্রুত সরানো / পুনর্নামকরণের জন্য বিকল্প, নির্ভরযোগ্য পদ্ধতিটি জানেন , হয় সাধারণ জেডিকে বা কোনও বাহ্যিক গ্রন্থাগার দিয়ে। অথবা যদি আপনি কোনও প্রদত্ত ফোল্ডার এবং এর সমস্ত বিষয়বস্তু (সম্ভবত কয়েক হাজার পৃথক ফাইল) এর জন্য কোনও ফাইল লক সনাক্ত এবং প্রকাশের সহজ উপায় জানেন তবে তাও ঠিক আছে।
সম্পাদনা : এই বিশেষ ক্ষেত্রে, মনে হয় আমরা renameTo()আরও কয়েকটি জিনিস বিবেচনায় নিয়ে ব্যবহার করে পালিয়ে গিয়েছি ; দেখতে এই উত্তর ।