رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
مشکل دریافت اسم فایل از فولدر مورد نظر
#1
سلام استاد
من یه برنامه دارم که یه فولدر به اسم تست مسازه تو این فولدر یه فایل زخیره میشه که اسم این فایل من نمیدونم فقط پسوند شو میدونم
حالا من نیاز به اسم این فایل دارم تا ارسال شه به ادرس ایمیل
با این کد
public void delete() {
       File files = new File(Environment.getExternalStorageDirectory().getPath()+"/test");
         File[] listfiles = files.listFiles();
          if(listfiles != null) {
         int i;
          for(i = 0; i < listfiles.length; i++) {
              File fileiyom = listfiles[i];
        if(fileiyom.isFile() && fileiyom.getName().endsWith(".txt")) {
        String file_name = fileiyom.getName();
        }
        }
         Toast.makeText(getApplicationContext(), "Start deleting from " + fileName, Toast.LENGTH_LONG).show();  
        }}
سم این فایل بدست بیارم که تو متغیر file_name زخیره میشه حالا این متغیر file_name به متد ایمیل سندر پاس میدم به این صورت 
sender.addAttachment(Environment.getExternalStorageDirectory().getPath()+"/test/file_name.txt");
  فایل هست ولی هیج ایمیل ارسال نمیشه در صورت که اگه اسم فایل بدونم ارسال میشه کجای کار مشکل داره استاد

ممنون میشم راهنمای کنید
اینم یه عکس از کد
[عکس: qug_aa.png]
پاسخ
تشکر شده توسط:
#2
با getAbsolutePath بجای getPath کار کنید و قبلش با new File(...).exists() چک کنید فایل وجود داشته باشه.
پاسخ
تشکر شده توسط: alirezaey
#3
استاد متوجه نشدم اینکه گفتین و قبلش با new File(...).exists() چک کنید که فایل وجود داشته باشه
اگه منظور تون فولدر تست هست که 100 درصد فایل هست
اگه منظور تون file_name این متغیره نمیدونم دیگه


میشه بیشترر توضیح بدین که چگونه چک کنم که تو متغیر file_name فایل هست یا نه ممنون
پاسخ
تشکر شده توسط:
#4
اینو تست کنین:
public void delete() {
    File files = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/test");
    String fileName = null;
    if(files.exists()) {
        File[] listFiles = files.listFiles();
        if(listFiles != null) {
            for(File file : listFiles) {
                if(file.isFile() && file.getName().endsWith(".txt")) {
                    if(fileName != null) {
                        fileName = file.getName();
                        Toast.makeText(getApplicationContext(), "Start deleting from " + fileName, Toast.LENGTH_LONG).show();
                    }
                }
            }
        }
    }
}
پاسخ
تشکر شده توسط: alirezaey
#5
باسلام استاد . من از کد شما خیلی خوش حال هستم ومتمئین بودم جواب بگیرم ولی
نمیدونم چی سر ی تواین کد هست من این تابع 3-4 ساعت فقط خواستم این تابع فراخوانی کنم نشد یعنی پیام توست نشون نداد
سرجای همون تابع خودم میزارم فراخوانی نمیشه وقت کد خودمو میزارم فراخونی میشه پیام توست نمایش میده
دیگه بدتر شدم که چی سری تو این کد هست؟؟؟؟
اسم تابع عوض کردم تو فراخوانی هم با اسم جدید صدا کردم نشد که نشد الانم کاملان گیج شدم
پاسخ
تشکر شده توسط:
#6
فردا صبح توی تلگرام تیم ویور بدین مشکل رو از نزدیک بررسی کنم. شناسه کاربری من @www_ncis_ir هست.
پاسخ
تشکر شده توسط: alirezaey




کاربران در حال بازدید این موضوع: 2 مهمان