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

نام تاپیک: تغییر نام گروهی فایل

  1. #1

    تغییر نام گروهی فایل

    با سلام و عرض ادب
    دوستان من میخواستم یه تعداد فایل عکس رو تغییر نام بدم به اینصورت که اول داخل یک پوشه کل فایل ها رو بررسی کنم ببینم نام فایل بین چه بازه عددی می باشد بعد قبلش یه عدد بزارم
    مثل عکس
    Screenshot 2024-07-21 095749.png
    حالا میخوام اگه اسم عکس بین 1 الی 2540 بود پسوند 0-0-94 قبل از اسم فایل اضافه کنم(با حفظ نام فعلی)
    یا
    اگه اسم عکس بین 2541 الی 12898 بود پسوند 0-0-95 قبل از اسم فایل اضافه کنم(با حفظ نام فعلی)
    و تا آخر
    این فایل ها مربوط به سال مختلف هستش که باید با توجه به نامش بررسی بشه بعد تغییر نام داده شود چون تعدادش زیاد هستش با چشم خطا به وجود میاد
    اگه راهنمایی کنید ممنون میشم

  2. #2
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    73
    پست
    3,684

    نقل قول: تغییر نام گروهی فایل

    سلام و روز خوش

    شما بعد از ساخت لیست از فایلهای فولدر،
    یک حلقه میسازین و هر اسم رو با "-" split میکنین
    و اولین المنت میشه اون شماره ای که باید محدوده اش کنترل بشه.

    مابقی کار یک rename هست.

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

  3. #3

    نقل قول: تغییر نام گروهی فایل

    نقل قول نوشته شده توسط mazoolagh مشاهده تاپیک
    سلام و روز خوش

    شما بعد از ساخت لیست از فایلهای فولدر،
    یک حلقه میسازین و هر اسم رو با "-" split میکنین
    و اولین المنت میشه اون شماره ای که باید محدوده اش کنترل بشه.

    مابقی کار یک rename هست.

    در نوشتن کدوم بخش کد مشکل دارین تا راهنمایی کنم.
    ممنون از راهنمایی شما قسمت اولش رو مشکل دارم به دست آوردن کل فایل های یک پوشه و خواندن اسم آن ها
    آیا دستوری حلقه ای هست که خودش از ابتدا تا انتها فایلها رو بررسی کنه ؟

  4. #4
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    73
    پست
    3,684

    نقل قول: تغییر نام گروهی فایل

    شما میتونین با directory.getfiles یا directory.enumeratefiles لیست فایلهای یک فولدر رو بگیرین.

    اینها با هم تفاوت دارن:
    getfiles یک آرایه string برمیگردونه (یکجا) برای همین اگر تعداد زیادی فایل باشه زمان میبره تا لیست پر بشه،
    ولی enumeratefiles یک enumerable collection برمیگردونه برای همین بلافاصله از اولین فایل در دسترس هست و برای فولدرهایی که فایلهای زیاد دارن سریعتر هست.

    برای rename کردن getfiles باید استفاده کنین، چون در enumeratefiles فایلهای rename شده هم دوباره در لیست میان
    و برنامه یا دچار خطا میشه یا تو لوپ گیر میکنه.

    حالا با فرض این که در پوشه مورد نظر فقط همین فایلهای تصویری هست که گفتین:
    IMPORTS SYSTEM.IO

    SUB batch_rename(folder_path AS STRING)
    DIM files_list = directory.getfiles(folder_path)
    FOR EACH filepath AS STRING IN files_list
    DIM filename AS STRING = path.GetFileName(filepath)
    DIM x AS STRING = filename.split("-"c)(0)
    DIM new_filename AS STRING
    SELECT CASE CINT(x)
    CASE <= 2540
    new_filename = "94-0-0-" + filename
    CASE 2541 TO 12898
    new_filename = "95-0-0" + filename
    CASE 12899 TO ....
    new_filename = "96-0-0" + filename
    CASE ELSE
    new_filename = "...." + filename
    END SELECT
    DIM new_filepath AS STRING = path.getdirectoryname(filepath) + "" + new_filename
    file.move(filepath, new_filepath)
    NEXT
    END SUB

  5. #5

    نقل قول: تغییر نام گروهی فایل

    نقل قول نوشته شده توسط mazoolagh مشاهده تاپیک
    شما میتونین با directory.getfiles یا directory.enumeratefiles لیست فایلهای یک فولدر رو بگیرین.

    اینها با هم تفاوت دارن:
    getfiles یک آرایه string برمیگردونه (یکجا) برای همین اگر تعداد زیادی فایل باشه زمان میبره تا لیست پر بشه،
    ولی enumeratefiles یک enumerable collection برمیگردونه برای همین بلافاصله از اولین فایل در دسترس هست و برای فولدرهایی که فایلهای زیاد دارن سریعتر هست.

    برای rename کردن getfiles باید استفاده کنین، چون در enumeratefiles فایلهای rename شده هم دوباره در لیست میان
    و برنامه یا دچار خطا میشه یا تو لوپ گیر میکنه.

    حالا با فرض این که در پوشه مورد نظر فقط همین فایلهای تصویری هست که گفتین:
    IMPORTS SYSTEM.IO

    SUB batch_rename(folder_path AS STRING)
    DIM files_list = directory.getfiles(folder_path)
    FOR EACH filepath AS STRING IN files_list
    DIM filename AS STRING = path.GetFileName(filepath)
    DIM x AS STRING = filename.split("-"c)(0)
    DIM new_filename AS STRING
    SELECT CASE CINT(x)
    CASE <= 2540
    new_filename = "94-0-0-" + filename
    CASE 2541 TO 12898
    new_filename = "95-0-0" + filename
    CASE 12899 TO ....
    new_filename = "96-0-0" + filename
    CASE ELSE
    new_filename = "...." + filename
    END SELECT
    DIM new_filepath AS STRING = path.getdirectoryname(filepath) + "" + new_filename
    file.move(filepath, new_filepath)
    NEXT
    END SUB
    خیلی خیلی ممنونم از توضیحات شما

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

  1. پاسخ: 2
    آخرین پست: دوشنبه 04 اسفند 1399, 15:36 عصر
  2. پاسخ: 0
    آخرین پست: یک شنبه 23 فروردین 1394, 22:04 عصر
  3. سوال : امکان انتقال اسناد یک سازمان به دیتابیس طوری که در صورت تغییر اسناد کتابخانه نیز تغییر کند؟؟!
    نوشته شده توسط mohsenashkboos در بخش برنامه نویسی شیرپوینت (Sharepoint Development)
    پاسخ: 3
    آخرین پست: یک شنبه 16 تیر 1392, 13:42 عصر
  4. پاسخ: 6
    آخرین پست: چهارشنبه 16 تیر 1389, 19:08 عصر
  5. تغییر تغییر مشخصه دستیابی(access specifier) کد ایجاد شده توسط نتبینز ؟؟؟
    نوشته شده توسط mahdi68 در بخش برنامه‌نویسی جاوا
    پاسخ: 1
    آخرین پست: چهارشنبه 04 فروردین 1389, 03:38 صبح

برچسب های این تاپیک

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

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