private static void New_subs(Io_url owner_dir, List_adp list, IoItmList subs, byte[] dir_cmd) { subs.Sort(); int len = subs.Len(); int list_total = list.Len(); byte[] owner_dir_bry = owner_dir.RawBry(); for (int i = 0; i < len; ++i) { IoItm_base src = (IoItm_base) subs.Get_at(i); Xow_import_doc trg = null; if (src.Type_dir()) { byte[] trg_url = src.Url().RawBry(); trg = new Xow_import_doc( Bool_.Y, Bool_.N, list_total + i, owner_dir_bry, trg_url, Bry_.new_u8(src.Url().NameAndExt_noDirSpr()), Bry_.Empty, Bry_.Empty, dir_cmd, Ary_empty); } else { IoItmFil src_as_fil = (IoItmFil) src; String size_str = Io_size_.To_str(src_as_fil.Size(), "#,###"); boolean is_xowa_core = gplx.xowa.wikis.data.Xow_db_file__core_.Is_core_fil_name( owner_dir.NameOnly(), src.Url().NameAndExt()); trg = new Xow_import_doc( Bool_.N, is_xowa_core, list_total + i, owner_dir_bry, src.Url().RawBry(), Bry_.new_u8(src.Name()), Bry_.new_u8(src_as_fil.ModifiedTime().XtoStr_fmt("yyyy-MM-dd")), Bry_.new_u8(size_str), dir_cmd, Ary_empty); } list.Add(trg); } }
public static Io_stream_rdr Get_rdr_or_null( Io_url src_fil, Io_url src_dir, Io_stream_unzip_mgr unzip_mgr, String... filter_ary) { IoItmFil src_itm = null; if (src_fil != null) src_itm = Io_mgr.I.QueryFil(src_fil); // specified file doesn't exist; try to find similar file based on filter if (src_itm == null || !src_itm.Exists()) { src_itm = Get_itm_by_filters(src_dir, filter_ary); if (src_itm == null) return null; } // return rdr Io_url src_itm_url = src_itm.Url(); Io_stream_rdr rv = unzip_mgr.Handles(src_itm_url) ? unzip_mgr.New_rdr(src_itm_url) : Io_stream_rdr_.file_(src_itm_url); rv.Len_(src_itm.Size()); return rv; }