كيفية الحصول على المسار المطلق للملفات من فيلديالوغ في اليوم وغدا?

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

  •  28-10-2019
  •  | 
  •  

سؤال

أنا باستخدام فيليديالوغ سوت للسماح للمستخدم تحديد عدة ملفات:

FileDialog dlg = new FileDialog(s, SWT.MULTI);
dlg.setFilterPath(somePath);
String fn = dlg.open();
if (fn != null)
  String [] files = dlg.getFileNames()

بينما fn إرجاع المسار المطلق إلى الدليل ، و files يحتوي الصفيف على مسارات نسبية.أود الحصول على مسار مطلق لكل ملف.هل هناك طريقة للقيام بذلك في جافا التي تعمل عبر منصات (يفوز, لينكس, ماك)?

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

المحلول

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

String[] filenames = dialog.getFileNames();
String filterPath = dialog.getFilterPath();

File[] selectedFiles = new File[filenames.length];

for(int i = 0; i < filenames.length; i++)
{
    if(filterPath != null && filterPath.trim().length() > 0)
    {
        selectedFiles[i] = new File(filterPath, filenames[i]);
    }
    else
    {
        selectedFiles[i] = new File(filenames[i]);
    }
}

إذا كنت بحاجة إلى المسار باعتباره String, ، يمكنك بالطبع استخدام getAbsolutePath() الطريقة على الناتج Files.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top