added qse_fs_setopt() & qse_fs_getopt().
added QSE_FS_CBS and changed qse_fs_del() to call cbs.del() if available
This commit is contained in:
@ -17,6 +17,7 @@ bin_PROGRAMS = \
|
||||
fmt01 \
|
||||
fmt02 \
|
||||
fs01 \
|
||||
fs02 \
|
||||
htb \
|
||||
glob01 \
|
||||
ipad01 \
|
||||
|
@ -53,14 +53,15 @@ build_triplet = @build@
|
||||
host_triplet = @host@
|
||||
bin_PROGRAMS = chr01$(EXEEXT) dir01$(EXEEXT) dll$(EXEEXT) \
|
||||
env01$(EXEEXT) fio01$(EXEEXT) fio02$(EXEEXT) fma$(EXEEXT) \
|
||||
fmt01$(EXEEXT) fmt02$(EXEEXT) fs01$(EXEEXT) htb$(EXEEXT) \
|
||||
glob01$(EXEEXT) ipad01$(EXEEXT) lda$(EXEEXT) main01$(EXEEXT) \
|
||||
main02$(EXEEXT) mbwc01$(EXEEXT) mbwc02$(EXEEXT) \
|
||||
nwad01$(EXEEXT) nwif01$(EXEEXT) nwif02$(EXEEXT) oht$(EXEEXT) \
|
||||
path01$(EXEEXT) pio$(EXEEXT) pma$(EXEEXT) rex01$(EXEEXT) \
|
||||
rbt$(EXEEXT) sio01$(EXEEXT) sio02$(EXEEXT) sio03$(EXEEXT) \
|
||||
sll$(EXEEXT) slmb01$(EXEEXT) str01$(EXEEXT) task01$(EXEEXT) \
|
||||
time$(EXEEXT) tre01$(EXEEXT) uri01$(EXEEXT) xma$(EXEEXT)
|
||||
fmt01$(EXEEXT) fmt02$(EXEEXT) fs01$(EXEEXT) fs02$(EXEEXT) \
|
||||
htb$(EXEEXT) glob01$(EXEEXT) ipad01$(EXEEXT) lda$(EXEEXT) \
|
||||
main01$(EXEEXT) main02$(EXEEXT) mbwc01$(EXEEXT) \
|
||||
mbwc02$(EXEEXT) nwad01$(EXEEXT) nwif01$(EXEEXT) \
|
||||
nwif02$(EXEEXT) oht$(EXEEXT) path01$(EXEEXT) pio$(EXEEXT) \
|
||||
pma$(EXEEXT) rex01$(EXEEXT) rbt$(EXEEXT) sio01$(EXEEXT) \
|
||||
sio02$(EXEEXT) sio03$(EXEEXT) sll$(EXEEXT) slmb01$(EXEEXT) \
|
||||
str01$(EXEEXT) task01$(EXEEXT) time$(EXEEXT) tre01$(EXEEXT) \
|
||||
uri01$(EXEEXT) xma$(EXEEXT)
|
||||
@WCHAR_TRUE@@WIN32_TRUE@am__append_1 = $(UNICOWS_LIBS)
|
||||
subdir = samples/cmn
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
|
||||
@ -126,6 +127,10 @@ am_fs01_OBJECTS = fs01.$(OBJEXT)
|
||||
fs01_OBJECTS = $(am_fs01_OBJECTS)
|
||||
fs01_LDADD = $(LDADD)
|
||||
fs01_DEPENDENCIES = $(am__DEPENDENCIES_2)
|
||||
fs02_SOURCES = fs02.c
|
||||
fs02_OBJECTS = fs02.$(OBJEXT)
|
||||
fs02_LDADD = $(LDADD)
|
||||
fs02_DEPENDENCIES = $(am__DEPENDENCIES_2)
|
||||
am_glob01_OBJECTS = glob01.$(OBJEXT)
|
||||
glob01_OBJECTS = $(am_glob01_OBJECTS)
|
||||
glob01_LDADD = $(LDADD)
|
||||
@ -266,7 +271,7 @@ am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
|
||||
am__v_GEN_0 = @echo " GEN " $@;
|
||||
SOURCES = $(chr01_SOURCES) dir01.c $(dll_SOURCES) $(env01_SOURCES) \
|
||||
$(fio01_SOURCES) $(fio02_SOURCES) $(fma_SOURCES) \
|
||||
$(fmt01_SOURCES) $(fmt02_SOURCES) $(fs01_SOURCES) \
|
||||
$(fmt01_SOURCES) $(fmt02_SOURCES) $(fs01_SOURCES) fs02.c \
|
||||
$(glob01_SOURCES) $(htb_SOURCES) $(ipad01_SOURCES) \
|
||||
$(lda_SOURCES) $(main01_SOURCES) $(main02_SOURCES) \
|
||||
$(mbwc01_SOURCES) $(mbwc02_SOURCES) $(nwad01_SOURCES) nwif01.c \
|
||||
@ -278,7 +283,7 @@ SOURCES = $(chr01_SOURCES) dir01.c $(dll_SOURCES) $(env01_SOURCES) \
|
||||
DIST_SOURCES = $(chr01_SOURCES) dir01.c $(dll_SOURCES) \
|
||||
$(env01_SOURCES) $(fio01_SOURCES) $(fio02_SOURCES) \
|
||||
$(fma_SOURCES) $(fmt01_SOURCES) $(fmt02_SOURCES) \
|
||||
$(fs01_SOURCES) $(glob01_SOURCES) $(htb_SOURCES) \
|
||||
$(fs01_SOURCES) fs02.c $(glob01_SOURCES) $(htb_SOURCES) \
|
||||
$(ipad01_SOURCES) $(lda_SOURCES) $(main01_SOURCES) \
|
||||
$(main02_SOURCES) $(mbwc01_SOURCES) $(mbwc02_SOURCES) \
|
||||
$(nwad01_SOURCES) nwif01.c nwif02.c $(oht_SOURCES) \
|
||||
@ -620,6 +625,9 @@ fmt02$(EXEEXT): $(fmt02_OBJECTS) $(fmt02_DEPENDENCIES) $(EXTRA_fmt02_DEPENDENCIE
|
||||
fs01$(EXEEXT): $(fs01_OBJECTS) $(fs01_DEPENDENCIES) $(EXTRA_fs01_DEPENDENCIES)
|
||||
@rm -f fs01$(EXEEXT)
|
||||
$(AM_V_CCLD)$(LINK) $(fs01_OBJECTS) $(fs01_LDADD) $(LIBS)
|
||||
fs02$(EXEEXT): $(fs02_OBJECTS) $(fs02_DEPENDENCIES) $(EXTRA_fs02_DEPENDENCIES)
|
||||
@rm -f fs02$(EXEEXT)
|
||||
$(AM_V_CCLD)$(LINK) $(fs02_OBJECTS) $(fs02_LDADD) $(LIBS)
|
||||
glob01$(EXEEXT): $(glob01_OBJECTS) $(glob01_DEPENDENCIES) $(EXTRA_glob01_DEPENDENCIES)
|
||||
@rm -f glob01$(EXEEXT)
|
||||
$(AM_V_CCLD)$(LINK) $(glob01_OBJECTS) $(glob01_LDADD) $(LIBS)
|
||||
@ -721,6 +729,7 @@ distclean-compile:
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fmt01.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fmt02.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fs01.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fs02.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/glob01.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/htb.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ipad01.Po@am__quote@
|
||||
|
@ -90,7 +90,7 @@ int qse_main (int argc, qse_achar_t* argv[])
|
||||
qse_setdflcmgrbyid (QSE_CMGR_SLMB);
|
||||
}
|
||||
#else
|
||||
setlocale (LC_ALL, "");
|
||||
setlocale (LC_ALL, "");
|
||||
qse_setdflcmgrbyid (QSE_CMGR_SLMB);
|
||||
#endif
|
||||
return qse_runmain (argc, argv, fs_main);
|
||||
|
74
qse/samples/cmn/fs02.c
Normal file
74
qse/samples/cmn/fs02.c
Normal file
@ -0,0 +1,74 @@
|
||||
#include <qse/cmn/fs.h>
|
||||
#include <qse/cmn/mem.h>
|
||||
#include <qse/cmn/str.h>
|
||||
#include <qse/cmn/sio.h>
|
||||
#include <qse/cmn/path.h>
|
||||
#include <qse/cmn/main.h>
|
||||
#include <qse/cmn/mbwc.h>
|
||||
#include <locale.h>
|
||||
|
||||
static int fs_del (qse_fs_t* fs, const qse_char_t* path)
|
||||
{
|
||||
qse_printf (QSE_T("Deleting [%s]\n"), path);
|
||||
/*if (qse_strcmp(path, QSE_T("b/c")) == 0) return 0;*/
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int fs_main (int argc, qse_char_t* argv[])
|
||||
{
|
||||
qse_fs_t* fs;
|
||||
qse_fs_cbs_t cbs;
|
||||
int ret = 0;
|
||||
|
||||
if (argc != 2)
|
||||
{
|
||||
qse_fprintf (QSE_STDERR, QSE_T("Usage: %s file-pattern-to-delete\n"), qse_basename(argv[0]));
|
||||
return -1;
|
||||
}
|
||||
fs = qse_fs_open (QSE_MMGR_GETDFL(), 0);
|
||||
|
||||
qse_memset (&cbs, 0, QSE_SIZEOF(cbs));
|
||||
cbs.del = fs_del;
|
||||
qse_fs_setopt (fs, QSE_FS_CBS, &cbs);
|
||||
|
||||
if (qse_fs_delfile (fs, argv[1], QSE_FS_DELDIRMBS_GLOB | QSE_FS_DELDIRMBS_RECURSIVE) <= -1)
|
||||
{
|
||||
qse_fprintf (QSE_STDERR, QSE_T("cannot delete files - %d\n"), qse_fs_geterrnum(fs));
|
||||
ret = -1;
|
||||
}
|
||||
|
||||
qse_fs_close (fs);
|
||||
return ret;
|
||||
}
|
||||
|
||||
int main (int argc, qse_achar_t* argv[])
|
||||
{
|
||||
int x;
|
||||
#if defined(_WIN32)
|
||||
char locale[100];
|
||||
UINT codepage = GetConsoleOutputCP();
|
||||
if (codepage == CP_UTF8)
|
||||
{
|
||||
/*SetConsoleOUtputCP (CP_UTF8);*/
|
||||
qse_setdflcmgrbyid (QSE_CMGR_UTF8);
|
||||
}
|
||||
else
|
||||
{
|
||||
sprintf (locale, ".%u", (unsigned int)codepage);
|
||||
setlocale (LC_ALL, locale);
|
||||
qse_setdflcmgrbyid (QSE_CMGR_SLMB);
|
||||
}
|
||||
#else
|
||||
setlocale (LC_ALL, "");
|
||||
qse_setdflcmgrbyid (QSE_CMGR_SLMB);
|
||||
#endif
|
||||
|
||||
qse_openstdsios ();
|
||||
|
||||
x = qse_runmain (argc, argv, fs_main);
|
||||
|
||||
qse_closestdsios ();
|
||||
|
||||
return x;
|
||||
}
|
||||
|
Reference in New Issue
Block a user