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

📄 dir-win32.c

📁 编译后直接运行的MP3播放器全部C语言源代码 一个包含FAT文件系统、系统引导 Boot、FLASH Driver等内容的
💻 C
字号:
/*************************************************************************** *             __________               __   ___. *   Open      \______   \ ____   ____ |  | _\_ |__   _______  ___ *   Source     |       _//  _ \_/ ___\|  |/ /| __ \ /  _ \  \/  / *   Jukebox    |    |   (  <_> )  \___|    < | \_\ (  <_> > <  < *   Firmware   |____|_  /\____/ \___  >__|_ \|___  /\____/__/\_ \ *                     \/            \/     \/    \/            \/ * $Id: dir-win32.c,v 1.6 2003/06/18 04:48:40 hardeeps Exp $ * * Copyright (C) 2002 by Felix Arends * * All files in this archive are subject to the GNU General Public License. * See the file COPYING in the source tree root for full license agreement. * * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY * KIND, either express or implied. * ****************************************************************************/#include <io.h>#include <windows.h>#include <malloc.h>#include "dir-win32.h"// Directory operations//// opendir// open directory for scanningDIR *opendir (              char *dirname // directory name              ){    DIR                 *p = (DIR*)malloc(sizeof(DIR));    struct _finddata_t  fd;    unsigned int        i;    char                *s = (char*)malloc(strlen(dirname) + 5);    wsprintf (s, "%s", dirname);    for (i = 0; i < strlen(s); i++)        if (s[i] == '/')            s[i] = '\\';    if (s[i - 1] != '\\')    {        s[i] = '\\';        s[++i] = '\0';    }    OutputDebugString (s);    wsprintf (s, "%s*.*", s);    if ((p->handle = _findfirst (s, &fd)) == -1)    {        free (s);        free (p);        return 0;    }    free (s);    return p;}// closedir// close directoryint closedir (              DIR *dir // previously opened dir search              ){    free(dir);    return 0;}// read dir// read next entry in directorystruct dirent *readdir (                        DIR *dir                        ){    struct _finddata_t fd;    if (_findnext (dir->handle, &fd) == -1)        return 0;    memcpy (dir->fd.d_name, fd.name, 256);        dir->fd.attribute = fd.attrib & 0x3f;    dir->fd.size = fd.size;    dir->fd.startcluster = 0 ;        return &dir->fd;}void fat_size(unsigned int* size, unsigned int* free){    *size = 2049;    *free = 1037;}

⌨️ 快捷键说明

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