قم بإنشاء مسار كامل تلقائيًا عند الكتابة إلى ملف جديد

StackOverflow https://stackoverflow.com/questions/2833853

سؤال

أريد أن أكتب ملفًا جديدًا مع FileWriter. أنا أستخدمه مثل هذا:

FileWriter newJsp = new FileWriter("C:\\user\Desktop\dir1\dir2\filename.txt");

الآن dir1 و dir2 حاليا غير موجود. أريد أن تقوم Java بإنشائها تلقائيًا إذا لم تكن موجودة بالفعل. في الواقع ، يجب على Java إعداد مسار الملف بأكمله إن لم يكن موجودًا بالفعل.

كيف يمكنني تحقيق ذلك؟

هل كانت مفيدة؟

المحلول

شيء مثل:

File file = new File("C:\\user\\Desktop\\dir1\\dir2\\filename.txt");
file.getParentFile().mkdirs();
FileWriter writer = new FileWriter(file);

نصائح أخرى

منذ Java 1.7 يمكنك استخدام Files.createfile:

Path pathToFile = Paths.get("/home/joe/foo/bar/myFile.txt");
Files.createDirectories(pathToFile.getParent());
Files.createFile(pathToFile);

يستخدم File.mkdirs():

File dir = new File("C:\\user\\Desktop\\dir1\\dir2");
dir.mkdirs();
File file = new File(dir, "filename.txt");
FileWriter newJsp = new FileWriter(file);

يستخدم File.mkdirs().

يستخدم FileUtils للتعامل مع كل هذه الصداع.

تحرير: على سبيل المثال ، استخدم الرمز أدناه للكتابة إلى ملف ، ستقوم هذه الطريقة "التحقق من وإنشاء الدليل الأصل إذا لم يكن موجودًا".

openOutputStream(File file [, boolean append]) 
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top