আমি কীভাবে ফাইল অবজেক্টটি ব্যবহার করে কোনও ফাইলের ডিরেক্টরি পেতে পারি?


110

কোডটি বিবেচনা করুন:

File file = new File("c:\\temp\\java\\testfile");

testfileএকটি ফাইল, এবং এটি থাকতে পারে বা নাও থাকতে পারে। আমি অবজেক্টটি c:\\temp\\java\\ব্যবহার করে ডিরেক্টরিটি পেতে চাই File। কিভাবে আমি এই কাজ সম্পর্কে যান?

উত্তর:


170

উভয় ক্ষেত্রেই আমি আশা করি file.getParent()(বা file.getParentFile()) আপনি যা চান তা আপনাকে দেবে।

উপরন্তু, যদি আপনি খুঁজে বের করতে কিনা মূল চান File করে বিদ্যমান এবং হয় একটি ডিরেক্টরি, তারপর exists()এবং isDirectory()কী তোমার পরে আছেন।


9
File.getParent () সাবধানে ব্যবহার করুন, কারণ এটি কিছু ক্ষেত্রে শূন্য হতে পারে।
ইজেচেমা

@geschema পোনাগুইনিকের উত্তর নীচে এটিকে সম্বোধন করে
মাইল


14

আপনি যদি এরকম কিছু করেন:

File file = new File("test.txt");
String parent = file.getParent();

parent নাল হবে

সুতরাং এই ফাইলের ডিরেক্টরি পেতে আপনি পরবর্তীটি করতে পারেন:

parent = file.getAbsoluteFile().getParent();

8

ফাইল এ.পি.আই. ফাইল.সেটপ্যারেন্ট বা ফাইল.সেট প্যারেন্টফাইলে আপনাকে ফাইলের ডিরেক্টরি ফিরিয়ে আনতে হবে।

আপনার কোডটি এমন হওয়া উচিত:

    File file = new File("c:\\temp\\java\\testfile");
    if(!file.exists()){
        file = file.getParentFile();
    }

অতিরিক্তভাবে আপনি ফাইল.আইসডিরেক্টরি এপিআই ব্যবহার করে আপনার পিতামাতার ফাইল ডিরেক্টরি ডিরেক্টরিটি পরীক্ষা করতে পারেন

if(file.isDirectory()){
    System.out.println("file is directory ");
}

4
File directory = new File("Enter any 
                directory name or file name");
boolean isDirectory = directory.isDirectory();
if (isDirectory) {
  // It returns true if directory is a directory.
  System.out.println("the name you have entered 
         is a directory  : "  +    directory);  
  //It returns the absolutepath of a directory.
  System.out.println("the path is "  + 
              directory.getAbsolutePath());
} else {
  // It returns false if directory is a file.
  System.out.println("the name you have
   entered is a file  : " +   directory);
  //It returns the absolute path of a file.
  System.out.println("the path is "  +  
            file.getParent());
}

1
আপনি প্রশ্নের উত্তর দিবেন না, এটি কোনও ফাইলের জন্য কাজ করে না।
টনি07

codeচূড়ান্ত ফাইল ফাইল = নতুন ফাইল ("সি: / দেব / এক্সচেঞ্জফেসনস.মিড"); System.out.println ("ফাইল বিদ্যমান?" + File.exists ()); System.out.println ("ফাইলের ডিরেক্টরি:" + file.getAbsolvePath ()); ঠিক আছে, খোঁড়া ইনডেন্টিংয়ের জন্য দুঃখিত, আমি মনে করি না মন্তব্যগুলিতে কোড ফর্ম্যাট করা সম্ভব। তবুও, আপনার কোড স্পষ্টতই কাজ করে না।
toni07

ধন্যবাদ, স্থির <! --->
জিগার জোশি

3
File filePath=new File("your_file_path");
String dir="";
if (filePath.isDirectory())
{
    dir=filePath.getAbsolutePath();
}
else
{
    dir=filePath.getAbsolutePath().replaceAll(filePath.getName(), "");
}


1
স্ট্যাক ওভারফ্লোতে স্বাগতম! সাধারণভাবে, কোড উত্তরগুলির জন্য একটু ব্যাখ্যা দরকার - এই মেটা স্ট্যাকওভারফ্লো পোস্টটি দেখুন । আপনার পোস্ট করা উত্তরের সাথে, আপনাকে একটি সাধারণ কেস দেওয়ার চেষ্টা করছেন এবং এটি ওপির আসল পোস্টের সাথে কীভাবে সম্পর্কিত তা ব্যাখ্যা করার দরকার হতে পারে। আরও গুরুত্ব সহকারে - আপনি এটি কীভাবে কাজ করবেন তা বিবেচনা করতে চাইতে পারেন your_file_path = "C:\\testfiles\\temp\\testfile";- আমি মনে করি না যে এটি আপনার প্রত্যাশাকে দেয়।
জে রিচার্ড স্নেপ

সঠিক উত্তর হওয়া উচিত। এটি ফাইলের সম্পূর্ণ পথ প্রদর্শন করবে।
ম্যাগনো সি

0

আপনি এটি ব্যবহার করতে পারেন

 File dir=new File(TestMain.class.getClassLoader().getResource("filename").getPath());

0
String parentPath = f.getPath().substring(0, f.getPath().length() - f.getName().length()); 

এটি আমার সমাধান হবে


-1

আমি পরম ফাইলের অবস্থান পাওয়ার জন্য এটি আরও দরকারী বলে মনে করি।

File file = new File("\\TestHello\\test.txt");
System.out.println(file.getAbsoluteFile());
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.