`
yunhuisdu19811011
  • 浏览: 94684 次
  • 性别: Icon_minigender_2
  • 来自: 济南
社区版块
存档分类
最新评论
  • fightingIOW: 案例看了,能实现上传,但是不是异步的,怎么改成页面可以预览呢? ...
    swfUpload实例
  • kizz: 您好,实例我看了,确实不错。您有struts2版的吗?现在项目 ...
    swfUpload实例

读文件目录结构部分代码

    博客分类:
  • java
J# 
阅读更多


    public boolean listRoots(String specialId, String specialUrl)
            throws ToolException {

        specialManagerDao.deleteSpecialStoreAndResourse(specialId);

        Date now = new Date();
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
        uploadDate = dateFormat.format(now);

        File rootFile = new File(specialUrl);
        if (!rootFile.exists()) { // 用户所给的地址不存在
            return false;
        } else {
            if (rootFile.isFile()) {
                String name = rootFile.getName();
                String storePath = rootFile.getAbsolutePath();
                String resourceSuf = name.substring(name.lastIndexOf('.') + 1);
                totalFileNum++;

                // 取文件的目录,添加到专辑资源目录结构中
                String specialStoreId = specialManagerDao.insertspecialStore(
                        specialId, name, 1, "1", 1);
                String resourcesize = String.valueOf(rootFile.length());

                // 将文件信息添加到资源基本信息表中
                specialManagerDao.insertSpecialResource(name, specialId,
                        storePath, resourceSuf, uploadDate, specialStoreId,resourcesize);

            } else {

                // 创建最根目录,添加到专辑资源目录中,
                // grade=1;storeid=000000000001;upnode=0;orderdisplay=1;
                String name = rootFile.getName();
                String specialStoreId = specialManagerDao.insertspecialStore(
                        specialId, name, 1, "1", 1);

                // 获取所有根目录下的所有文件夹和文件信息 int orderdisplay=0; specialUrl
                listDirectory(rootFile, specialStoreId, 1, specialId);

            }

            specialManagerDao.updateSpecialAmountById(totalFileNum, specialId);
            return true;
        }
    }

    private void listDirectory(File dir, String upnode, int upnodeGrade,
            String specialId) throws ToolException {

        int thisGrade = upnodeGrade + 1;

        if (!dir.exists()) {
            System.out.println("文件名称不存在!");
        } else {

            File[] files = dir.listFiles();
            if (files != null) {
                int orderDisplay = 0;
                for (int i = 0; i < files.length; i++) {
                    if (files[i].isDirectory()) { // 文件夹
                        orderDisplay++;

                        String name = files[i].getName();

                        // 创建本目录信息 orderdisplay=j++; grade = upgrade+1; upnode=
                        // upnode
                        String specialStoreId = specialManagerDao
                                .insertspecialStore(specialId, name, thisGrade,
                                        upnode, orderDisplay);

                        listDirectory(files[i], specialStoreId, thisGrade,
                                specialId);
                    } else { // 文件
                        String name = files[i].getName();
                        String storePath = files[i].getAbsolutePath();
                        String resourceSuf = name.substring(name
                                .lastIndexOf('.') + 1);
                        String resourcesize = String.valueOf(files[i].length());
                       
                        specialManagerDao.insertSpecialResource(name,
                                specialId, storePath, resourceSuf, uploadDate,
                                upnode,resourcesize);
                        totalFileNum++;
                    }
                }
            }
        }
    }

    public boolean listVisualRoots(String specialId, String specialUrl)
            throws ToolException {

        specialManagerDao.deleteSpecialStoreAndResourse(specialId);

        Date now = new Date();
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
        uploadDate = dateFormat.format(now);
       
        String rootPath = ServletActionContext.getServletContext().getRealPath(specialUrl);
       
        File rootFile = new File(rootPath);
        if (!rootFile.exists()) { // 用户所给的地址不存在
            return false;
        } else {
            if (rootFile.isFile()) {
                String name = rootFile.getName();
                String storePath = specialUrl+"/"+name;
                String resourceSuf = name.substring(name.lastIndexOf('.') + 1);
                totalFileNum++;

                // 取文件的目录,添加到专辑资源目录结构中
                String specialStoreId = specialManagerDao.insertspecialStore(
                        specialId, name, 1, "1", 1);
                String resourcesize = String.valueOf(rootFile.length());

                // 将文件信息添加到资源基本信息表中
                specialManagerDao.insertSpecialResource(name, specialId,
                        storePath, resourceSuf, uploadDate, specialStoreId,resourcesize);

            } else {

                // 创建最根目录,添加到专辑资源目录中,
                // grade=1;storeid=000000000001;upnode=0;orderdisplay=1;
                String name = rootFile.getName();
                String specialStoreId = specialManagerDao.insertspecialStore(
                        specialId, name, 1, "1", 1);

                // 获取所有根目录下的所有文件夹和文件信息 int orderdisplay=0; specialUrl
                listVisualDirectory(rootFile, specialStoreId, 1, specialId,specialUrl);

            }

            specialManagerDao.updateSpecialAmountById(totalFileNum, specialId);
            return true;
        }
    }

    private void listVisualDirectory(File dir, String upnode, int upnodeGrade,
            String specialId,String parentVisualPath) throws ToolException {

        int thisGrade = upnodeGrade + 1;

        if (!dir.exists()) {
            System.out.println("文件名称不存在!");
        } else {

            File[] files = dir.listFiles();
            if (files != null) {
                int orderDisplay = 0;
                for (int i = 0; i < files.length; i++) {
                    if (files[i].isDirectory()) { // 文件夹
                        orderDisplay++;

                        String name = files[i].getName();
                        String thisPath = parentVisualPath+"/"+name;

                        // 创建本目录信息 orderdisplay=j++; grade = upgrade+1; upnode=
                        // upnode
                        String specialStoreId = specialManagerDao
                                .insertspecialStore(specialId, name, thisGrade,
                                        upnode, orderDisplay);

                        listVisualDirectory(files[i], specialStoreId, thisGrade,
                                specialId,thisPath);
                    } else { // 文件
                        String name = files[i].getName();
                        String storePath = parentVisualPath+"/"+name;
                        String resourceSuf = name.substring(name
                                .lastIndexOf('.') + 1);
                        String resourcesize = String.valueOf(files[i].length());
                        specialManagerDao.insertSpecialResource(name,
                                specialId, storePath, resourceSuf, uploadDate,
                                upnode,resourcesize);
                        totalFileNum++;
                    }
                }
            }
        }
    }

分享到:
评论

相关推荐

    16种文件的数据结构

    0009 mp4文件数据结构以及提取部分信息的代码.txt 0010 ogg文件数据结构以及读取其注释信息的代码.txt 0011 png文件数据结构.txt 0012 swf文件数据结构以及转为exe或从exe中剥离出swf的代码.txt 0013 TIF文件...

    操作系统 文件管理 代码 C

    代码中定义了一个名为`node`的结构体类型,用于表示文件系统中的目录和文件节点。每个`node`结构体包含以下成员: - `char name[50]`:表示节点的名字,可以是目录名或文件名。 - `int type`:用来区分节点是目录...

    软件体系结构 C2风格文件管理 源代码

    4. **数据结构**:文件系统的数据结构,如目录项、inode(用于存储文件元数据)等,是文件管理的核心。 5. **错误处理**:良好的错误处理机制确保了系统在遇到问题时能够优雅地恢复或提供反馈。 6. **内存管理**:...

    一个多用户多级目录结构文件系统设计与实现

    5. **打开文件结构** (`HOFile`):记录打开文件的状态,包括文件的标志字、访问计数、指向FCB结构的指针、文件当前的读写指针等。 #### 五、实现细节 - **用户管理**:系统支持多用户同时登录,并能够识别超级用户...

    ani文件数据结构以及播放和分解ani文件的图像的代码

    ani文件的数据结构包括多个组成部分,这些部分共同构成了一个完整的动画序列。 1. 头部: ani文件的开头包含了一个标准的Windows资源文件头部,这个头部提供了关于文件的基本信息,比如文件类型、版本号和资源数量...

    unity android 目录结构1

    当导出Android项目时,Unity会根据上述目录结构生成一个完整的Android Studio项目,开发者可以直接在Android Studio中查看和编辑源码,添加额外的Java或Kotlin代码,以及进行更深入的优化。 为了确保Unity项目能够...

    多用户多目录文件系统+代码

    3. **目录结构**:目录是文件系统的重要组成部分,它记录了文件的名称和位置。常见的目录结构有单级目录、两级目录和多级目录。多级目录结构允许更复杂的文件组织和查找。 4. **文件操作实现**:包括创建、打开、...

    C读取DXF文件的代码.pdf

    2. 解析DXF文件结构:使用switch语句根据DXF文件中的SECTION关键字来解析不同的部分,例如HEADER、TABLES、ENTITIES等。 3. 读取 ENTITY 部分:在读取ENTITY部分时,使用ArrayList来存储不同类型的图形元素,例如...

    java读取txt文件代码

    这部分代码涉及到了数据的结构化存储(如使用`List`和`Map`),以及数学运算和排序算法。 ### 进阶数据处理 对于进阶的数据处理,可以使用`Map`来存储每一行的数据,其中键是列名,值是该行对应的列值。然后,可以...

    读DBC文件源代码

    在给定的`vehicleparam.c`和`vehicleparam.h`源代码文件中,我们可以预期它们实现了读取DBC文件的核心功能。以下是一些可能包含的关键函数和数据结构: 1. **数据结构定义**:首先,你需要定义表示DBC文件内容的...

    Visual Basic读取EXCEL文件含完整源代码

    7. **源代码结构**:压缩包内的文件如`.frm`(表单文件)和`.vbp`(工程文件)包含了VB项目的结构和代码。`.frx`存储表单的非代码资源,如控件的位置和大小,而`.scc`文件用于版本控制。 8. **编译与运行**:`.exe`...

    操作系统课程设计 天津科技大学 二级文件系统设计 答案 完整代码 Liunx

    - **任务描述**:为Linux系统设计一个简单的二级文件系统,包括实现登录、列目录、创建文件、删除文件、打开文件、关闭文件、读文件、写文件以及进出目录等功能。 - **列目录**:列出文件名、物理地址、保护码和文件...

    文件管理系统代码

    5. **I/O操作**:为了与实际的文件系统交互,`folder_node` 可能需要包含读取和写入文件系统信息的方法,如`load_from_disk`(从磁盘加载目录结构)和`save_to_disk`(保存到磁盘)。 6. **内存管理**:考虑到C++的...

    操作系统 文件系统 程序源代码 报告齐全

    其次,文件系统通过目录结构(如树形结构)来组织文件,让用户能够通过路径快速定位到所需文件。此外,文件系统还负责文件的创建、打开、读取、写入、关闭以及删除等操作,同时确保文件的完整性和安全性,比如通过...

    读取bmp文件的十六进制代码

    总结来说,读取BMP文件的十六进制代码涉及到理解BMP文件结构、使用编程语言的文件操作函数以及将二进制数据转换为可读的十六进制表示。这个过程可以帮助我们更好地理解和调试与图像相关的程序,同时对计算机视觉领域...

    操作系统文件管理源代码

    9. **文件的读写操作**:读取文件时,系统需要找到文件在磁盘上的位置,然后将数据复制到内存;写入文件则相反。源代码可能包括读写函数,涉及磁盘I/O操作。 10. **错误检测与恢复**:文件系统需要处理硬件故障、...

    文件系统实验代码,操作系统

    3. **文件的读写操作**:读取文件需要找到对应的数据块并将其内容返回给用户;写入文件则涉及修改或添加数据到指定的数据块。 4. **文件的权限管理**:操作系统通常会根据用户权限控制文件的访问,包括读、写、执行...

    C#写的一个树形目录的文件管理器 源代码

    通过这两个类,我们可以获取目录下的子目录、文件信息,以及执行读取、写入、移动等操作。 文件管理器的UI通常采用Windows Forms或WPF(Windows Presentation Foundation)来创建。Windows Forms是.NET框架的一部分...

    C语言中 文件读取和写入的详细操作代码 非常有用

    在C语言中,文件操作是程序与外部数据交互的关键部分,包括读取文件中的数据和向文件中写入数据。本教程将详细讲解C语言中关于文件读取和写入的相关知识点,涵盖字符、字符串及整行数据的处理。 1. **文件打开模式*...

    MATLAB环境平台下读取edf文件的源代码,可以实现快速高效的读取常见格式的源代码.zip

    这通常涉及到对EDF文件格式的深入理解,包括文件结构、头信息和数据组织方式等。 EDF文件由头文件和数据文件两部分组成,头文件包含关于记录的元数据,如患者信息、信号数量、采样率等。数据文件则包含按时间序列...

Global site tag (gtag.js) - Google Analytics