From 1fab7b4ef20aad87628b69df6a7b3206c377501d Mon Sep 17 00:00:00 2001 From: hyzboy Date: Fri, 26 Jul 2024 03:13:42 +0800 Subject: [PATCH] fixed a bug in ComboFilename --- inc/hgl/filesystem/Filename.h | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/inc/hgl/filesystem/Filename.h b/inc/hgl/filesystem/Filename.h index c33aadd..c9d1683 100644 --- a/inc/hgl/filesystem/Filename.h +++ b/inc/hgl/filesystem/Filename.h @@ -95,12 +95,17 @@ namespace hgl template inline const String ComboFilename(const StringList &sl,const T spear_char=(T)HGL_DIRECTORY_SEPARATOR_RAWCHAR) { - T **str_list=AutoDeleteArray(sl.GetCount()); - int *str_len=AutoDeleteArray(sl.GetCount()); + const int count=sl.GetCount(); + + if(count<=0) + return String(); + + AutoDeleteArray str_list(count); + AutoDeleteArray str_len(count); int index=0; - for(auto str:sl) + for(String *str:sl) { if(str->IsEmpty()) continue; @@ -111,7 +116,7 @@ namespace hgl ++index; } - return ComboFilename(str_list,str_len,sl.GetCount(),spear_char); + return ComboFilename(str_list.data(),str_len,count,spear_char); } /** @@ -350,6 +355,11 @@ namespace hgl return old_name+String::charOf(split_char)+new_extname; } + #ifdef HGL_SUPPORT_CHAR8_T + inline AnsiString MergeFilename(const AnsiString &pathname,const AnsiString &filename) ///<组合路径名与文件名 + {return MergeFilename(pathname,filename,HGL_DIRECTORY_SEPARATOR,HGL_DIRECTORY_SEPARATOR_RAWSTR);} + #endif//HGL_SUPPORT_CHAR8_T + inline UTF8String MergeFilename(const UTF8String &pathname,const UTF8String &filename) ///<组合路径名与文件名 {return MergeFilename(pathname,filename,HGL_DIRECTORY_SEPARATOR,HGL_DIRECTORY_SEPARATOR_U8STR);}