⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pcsl_util_filelist.c

📁 This is a resource based on j2me embedded,if you dont understand,you can connection with me .
💻 C
字号:
/* * 	 * * Copyright  1990-2007 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER *  * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License version * 2 only, as published by the Free Software Foundation. *  * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License version 2 for more details (a copy is * included at /legal/license.txt). *  * You should have received a copy of the GNU General Public License * version 2 along with this work; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA * 02110-1301 USA *  * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa * Clara, CA 95054 or visit www.sun.com if you need additional * information or have any questions. */#include <stdio.h>#include <string.h>#include <pcsl_file.h>#include <pcsl_memory.h>#include <pcsl_util_filelist.h>/** * @file * * Useful posix file list utilities. */extern void* pcsl_file_opendir(const pcsl_string * dirName);extern int pcsl_file_closedir(void *handle);void *pcsl_util_openfileiterator(const pcsl_string * filelist) {    int rootLength;    PCSLStorageDirInfo* pPCSLStorageDirInfo;    void* dir;    const jsize filelistLen = pcsl_string_length(filelist);    pPCSLStorageDirInfo = (PCSLStorageDirInfo*)pcsl_mem_malloc(sizeof (PCSLStorageDirInfo));    if (pPCSLStorageDirInfo == NULL) {	//Error in allocation	return NULL;    }    memset(pPCSLStorageDirInfo, 0, sizeof(PCSLStorageDirInfo));    /*     * find the root dir of the string     */    rootLength = pcsl_string_last_index_of(filelist, pcsl_file_getfileseparator());        if (-1 == rootLength) {        rootLength = 0;    } else {        /* Include the file separator. */        rootLength++;    }    pPCSLStorageDirInfo->savedRootLength = rootLength;    pPCSLStorageDirInfo->savedMatchLength = filelistLen - rootLength;    /* Do not include the file separator for dirOpen. */    if (rootLength > 0) {        pcsl_string dirName = PCSL_STRING_NULL;	if (pcsl_string_substring(filelist, 0, rootLength, &dirName) 	    != PCSL_STRING_OK) {	  pcsl_mem_free(pPCSLStorageDirInfo);	  return NULL;	}	dir = pcsl_file_opendir(&dirName);	pcsl_string_free(&dirName);		if (dir == NULL)	{	    pcsl_mem_free(pPCSLStorageDirInfo);	    return NULL;	}	        pPCSLStorageDirInfo->savedDirectory = dir;    } else {        // open '.' dir        jchar dotDir[2];        pcsl_string dirName = PCSL_STRING_NULL;             dotDir[0] = '.';        dotDir[1] = pcsl_file_getfileseparator();	if (pcsl_string_convert_from_utf16(dotDir, 2, &dirName) 	    != PCSL_STRING_OK) {	    pcsl_mem_free(pPCSLStorageDirInfo);	    return NULL;	}        pPCSLStorageDirInfo->savedDirectory = pcsl_file_opendir(&dirName);	pcsl_string_free(&dirName);    }         return pPCSLStorageDirInfo;}int pcsl_util_closefileiterator(void *handle) {    int retVal;    PCSLStorageDirInfo* pPCSLStorageDirInfo = (PCSLStorageDirInfo *)handle;    if (handle == NULL) {	return -1;    }    retVal = pcsl_file_closedir(pPCSLStorageDirInfo->savedDirectory);    pcsl_mem_free(pPCSLStorageDirInfo);    return retVal;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -