رفتن به مطلب
جامعه‌ی برنامه‌نویسان مُدرن ایران
  • 0
g.taheri

تغییر نام فایل‌ها


سوال

با سلام من میخوام چند فایلی که داخل فولدرم دارم رو تغییر نام بدم ، وقتی فایل ها زبانشون انگلیسی باشه مشکلی نیست قشنگ نامشون تغییر میده

ولی وقتی به زبان های دیگه ای filename باشه درست تغییر نمیده ممنون میشم راهنمایی کنید .

#include <iostream>
#include <filesystem>
#include <stdio.h>
#include <windows.h>

#include <thread>


using namespace std;
#ifdef _MSC_VER
std::wstring ToUtf16(std::string str)
{
  std::wstring ret;
  int len = MultiByteToWideChar(CP_UTF8, 0, str.c_str(), str.length(), NULL, 0);
  if (len > 0)
    {
      ret.resize(len);
      MultiByteToWideChar(CP_UTF8, 0, str.c_str(), str.length(), &ret[0], len);
    }
  return ret;
}
#endif
int main()
{
  
  
  const std::filesystem::directory_options options = (
        std::filesystem::directory_options::follow_directory_symlink |
        std::filesystem::directory_options::skip_permission_denied
        );
  
  try
  {
    for (const auto& dirEntry :
         std::filesystem::recursive_directory_iterator("C:\\folder",
                                                       std::filesystem::directory_options(options)))
      {
        filesystem::path  myfile(dirEntry.path().u8string());
        string uft8path1 = dirEntry.path().u8string();
        
        string uft8path3 = myfile.parent_path().u8string() + "/" + "renamed-" + myfile.filename().u8string();
        
        _wrename(
              ToUtf16(uft8path1).c_str()
              ,
              ToUtf16(uft8path3).c_str()
              );
        std::cout << dirEntry.path().u8string() << std::endl;
      }
    
  }
  catch (std::filesystem::filesystem_error & fse)
  {
    std::cout << fse.what() << std::endl;
  }
  
  
  system("pause");
  
}

 

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

0 پاسخ به این سوال تا کنون داده شده است

پست های پیشنهاد شده

هنوز برای این سوال پاسخی ارسال نشده است

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

مهمان
پاسخ به این سوال ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از ۷۵ اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به عنوان یک لینک به جای

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.


  • کاربران آنلاین در این صفحه   0 کاربر

    هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.

×
×
  • جدید...