জাভার ক্রিয়েশন নিউফাইলে () - এটি কী ডিরেক্টরি তৈরি করবে?


87

( ./logs/error.log) এগিয়ে যাওয়ার আগে একটি নির্দিষ্ট ফাইল উপস্থিত রয়েছে কিনা তা যাচাই করার জন্য আমার শর্তসাপেক্ষ হয়েছে । যদি এটি না পাওয়া যায় তবে আমি এটি তৈরি করতে চাই। তবে, হবে

File tmp = new File("logs/error.log");
tmp.createNewFile();

এছাড়াও logs/এটি তৈরি না হলে তৈরি ?

উত্তর:


190

না । ফাইলটি তৈরি করার আগে
ব্যবহার tmp.getParentFile().mkdirs()করুন।


উফ! আমি "tmp.mkdirs ()" ব্যবহার করছিলাম। সে কারণেই আমার ফাইলটি ফোল্ডার হিসাবে তৈরি করা হচ্ছিল
গ্যাব্রিয়েলবিবি

20
File theDir = new File(DirectoryPath);
if (!theDir.exists()) theDir.mkdirs();

6
আমি "এমকিডির" এর পরিবর্তে "এমকিডিয়ার্স" ব্যবহার করার প্রস্তাব দিচ্ছি যাতে আপনার কোডটি অ-বিদ্যমান প্যারেন্ট ফোল্ডারগুলিও তৈরি করতে পারে :)
নিম্পো

14
File directory = new File(tmp.getParentFile().getAbsolutePath());
directory.mkdirs();

ডিরেক্টরিগুলি ইতিমধ্যে উপস্থিত থাকলে কিছুই হবে না, সুতরাং আপনার কোনও চেকের দরকার নেই।


9

জাভা 8 স্টাইল

Path path = Paths.get("logs/error.log");
Files.createDirectories(path.getParent());

ফাইল লিখতে

Files.write(path, "Log log".getBytes());

পড়তে

System.out.println(Files.readAllLines(path));

পুরো উদাহরণ

public class CreateFolderAndWrite {

    public static void main(String[] args) {
        try {
            Path path = Paths.get("logs/error.log");
            Files.createDirectories(path.getParent());

            Files.write(path, "Log log".getBytes());

            System.out.println(Files.readAllLines(path));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

3

StringUtils.touch(/path/filename.ext) এখন (> = 1.3) ডিরেক্টরি ও ফাইল তৈরি করে যদি সেগুলির অস্তিত্ব না থাকে।


4
দেরী মন্তব্যটি ক্ষমা করুন তবে এটি এখন হওয়া উচিতFileUtils.touch(new File(file_path))
শার্ক1608

0

না, এবং যদি logsনা থাকে তবে আপনি পাবেনjava.io.IOException: No such file or directory

অ্যান্ড্রয়েড ডেভসের জন্য মজাদার ঘটনা: পছন্দগুলি কল করে Files.createDirectories()এবং Paths.get()মিনি এপিআই 26 সমর্থন করার সময় কাজ করবে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.