نمایش نتایج 1 تا 3 از 3

نام تاپیک: افزودن عدد 1 به آخر اسم فایل در صورت موجود بودن

  1. #1
    کاربر دائمی
    تاریخ عضویت
    تیر 1390
    محل زندگی
    کرمانشاه
    پست
    1,487

    افزودن عدد 1 به آخر اسم فایل در صورت موجود بودن

    سلام و خسته نباشید .

    من یه همچین کدی دارم که کارش اینکه گزارش ساخته شده با Stimul Report رو در یک آدرسی ذخیره می کنه


    stiReport1.SaveDocument("Saved_Reports\\" + textBox1.Text + ".mdc");


    حالا یک کدی لازم دارم که اگه فایلی با اون اسم موجود بود ، اصلش رو نگه داره و یک عدد 1 به آخر اسمش اضافه کنه .

    یک چیزی مثل همین Copy & Replace ویندوز که اگه موجود باشه ، یک اسم و یا نمادی بهش اضافه می کنه ، اگه باز اون اسم موجود باشه خودش تصمیم میگیره و بازم یکی بهش اضافه می کنه .



    یک این طور کدی هم دارم


    bool fileExist = File.Exists("C:\\a.txt");
    if (fileExist)
    {
    do sth
    }


    چه طوری اسم فایل موجود رو بگیرم و اگه 1 آخرش بود ، اسم فایل جدید آخرش 2 باشه .

    اگه فایلی که آخرش 2 هست موجود بود ، یک فایل جدید که آخرش 3 باشه ساخته بشه .
    و اگه 3 آخرش بود ، فایل جدید آخرش 4 بشه . و همین طور .....

    ممنون میشم کمک کنید

  2. #2

    نقل قول: افزودن عدد 1 به آخر اسم فایل در صورت موجود بودن

    یک تابع بازگشتی باید بنویسی که وظیفه اش ایجاد نام منحصر به فرد برای فایل هست:
            private string UniqueFileName(string path, char separateCharacter)
    {
    List<string> allPartOfSplitFileName = System.IO.Path.GetFileNameWithoutExtension(path).S plit(separateCharacter).ToList();
    string lastPartOfFileName = allPartOfSplitFileName.LastOrDefault();
    if (!string.IsNullOrEmpty(lastPartOfFileName))
    {
    int number = -1;
    bool LastPartOfFileNameIsNumber;
    try
    {
    number = int.Parse(lastPartOfFileName);
    LastPartOfFileNameIsNumber = true;
    }
    catch
    {
    LastPartOfFileNameIsNumber = false;
    }

    path = System.IO.Path.GetDirectoryName(path) + "\\";
    if (LastPartOfFileNameIsNumber)
    {
    number++;
    allPartOfSplitFileName.Take(allPartOfSplitFileName .Count - 1).ToList().ForEach(part => path += part + "_");
    }
    else
    {
    number = 1;
    allPartOfSplitFileName.ForEach(part => path += part + "_");
    }
    path += number + ".txt";
    }
    else
    {
    path = System.IO.Path.GetDirectoryName(path) + "\\"
    + System.IO.Path.GetFileNameWithoutExtension(path)
    + "1" + ".txt";
    }
    if (System.IO.File.Exists(path))
    {
    return UniqueFileName(path, separateCharacter);
    }
    return path;
    }


    برای ذخیره باید چک کنید اگر نام تکراری بود تابع را فراخوانی کنید(دکمه ذخیره):
            private void button13_Click_1(object sender, EventArgs e)
    {
    string fileName = textBox1.Text;
    string path = "Saved_Reports\\" + fileName + ".txt";

    if (File.Exists(path))
    {
    path = UniqueFileName(path, '_');
    }
    stiReport1.SaveDocument(path);
    }

    '_' کاراکتری هست که نام و عدد را از هم جدا میکند.

  3. #3
    کاربر دائمی
    تاریخ عضویت
    تیر 1390
    محل زندگی
    کرمانشاه
    پست
    1,487

    نقل قول: افزودن عدد 1 به آخر اسم فایل در صورت موجود بودن

    از کد شما استفاده کردم و خیلی عالی بود . مرسی

    اما فقط یک مشکل هست . اگر اسم فایل ما عدد باشه ، مثلا یوزر کاربر ما یک عدد مثل کد ملی باشه ، کد شما یک رقم به آخرین رقم اسم فایل اضافه می کنه و SAVE می کنه

    مثلا اسم فایل ما 123.txt هست . کد شما میاد فایل جدید رو به جای اینکه 123_1.txt کنه ،، این طوری میشه

    124.txt

    مرسی !

تاپیک های مشابه

  1. پاسخ: 7
    آخرین پست: دوشنبه 28 مرداد 1387, 10:43 صبح
  2. دانلود کردن یک فایل به صورت مستقل
    نوشته شده توسط ICEMAN در بخش Flash و ActionScript
    پاسخ: 0
    آخرین پست: جمعه 06 آبان 1384, 12:58 عصر
  3. ریختن اسم فایل در یک متغیر
    نوشته شده توسط Beyondsoft در بخش C#‎‎
    پاسخ: 1
    آخرین پست: دوشنبه 17 مرداد 1384, 22:00 عصر
  4. نمی تونم اسم فایل رو عوض کنم
    نوشته شده توسط Developer Programmer در بخش برنامه نویسی در Delphi
    پاسخ: 7
    آخرین پست: دوشنبه 18 خرداد 1383, 16:28 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •