رفتن به مطلب
مرجع رسمی سی‌پلاس‌پلاس ایران
  • 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 پاسخ به این سوال تا کنون داده شده است

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

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

به گفتگو ملحق شوید

شما همین الآن می‌توانید مطلبی را ارسال و بعداً ثبت‌نام کنید. اگر حساب کاربری دارید، و با حساب کاربری خود مطلب ارسال کنید.
نکته: مطلب شما قبل از انتشار نیاز به بازبینی توسط میانجی‌گر‌ها دارد.

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

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

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

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

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

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


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

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

×
×
  • جدید...