毕业论文——多语种网络硬盘系统的设计_第1页
毕业论文——多语种网络硬盘系统的设计_第2页
毕业论文——多语种网络硬盘系统的设计_第3页
毕业论文——多语种网络硬盘系统的设计_第4页
毕业论文——多语种网络硬盘系统的设计_第5页
免费预览已结束,剩余20页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

多语种网络硬盘系统的设计摘 要网络硬盘系统是计算机网络中比较流行的一种应用软件,但是一般的网络硬盘系统只适用于使用单一语种的人群。为满足不同语种人群对网络硬盘系统的需求,设计了多语种网络硬盘系统。采用ASP.NET 2.0开发语言,利用ASP.NET中的三层结构、B/S模式结构以及ASP.NET网页资源的设计思路,实现了包括文件夹的操作、文件的操作、网页的多语种化三个功能模块;通过文件夹功能模块,可以添加、删除、更改名字、移动、浏览文件夹;通过文件功能模块,可以查看文件属性、上传、下载、更改名字、移动文件;通过系统的多语种化模块,能够自动识别客户端的默认语言并反馈给客户端相应语言的网页。通过应用多语种网络硬盘系统,可以满足不同语种人群共享一个网络硬盘系统的需求,具有一定的应用价值。关键词:计算机应用技术;网络编程;ASP.NET 2.0;资源本地化;自动识别The Design of a Multilingual Network Hard Disk SystemAbstractThe network hard disk system is a kind of relatively popular software in the area of computer networks, but the common network hard disk system is just applied to people who understand only one language. The network hard disk which identify only one language has limitation in scope of usage, so the network hard disk which can identify many languages need to be designed to meet the demands of people who use different language. By using ASP.NET 2.0, which includes the three-layer of ASP.NET, the structure of B/S and the ASP.NET page resource, this paper introduces three functions, the operation of folder, the operation of file and the multi-languages of webpage. According to the functional model of folder, it can add, delete, rename, move and browse folder. According to the functional model of file, it can check up files attribute as well as preview, upload, download, rename and move file. According to the Multilingual Model, it can automatically identify the language at the end of client and reflect related language webpage to client. This multilingual network disk system can satisfy people who speak different languages in sharing a same network disk, so it has practical value.Key words: Computer technology; Network programming; ASP.NET 2.0; Resources localization; Automatic Identification1 引言1.1 课题背景自从Internet出现以来,整个世界就被这个庞大的网络渐渐地联系起来了。世界各地的人们对网络的依赖也逐渐增大,网上购物,网上书店,网上看病,网上办公等一系列事情都可以通过这个庞大的网络来完成。在网络上共享文件也是Internet的一个很大的应用。通过B/S模式实现的系统相对于C/S模式实现的系统,在易使用性和跨平台方面都占据了相当大的优势。这就出现了一个问题,那就是世界各地的人使用的语言都不一样,在一个站点上使用一种语言界面供大家使用是不人性化的。在这种情况下,多语种网络硬盘系统就可以减少人们因语言不同而带来的语言障碍。1.2 课题的意义当今的人们对网络的依赖性越来越大,通过网络寻找各种资料、共享资料等。网络硬盘的出现能够很大程度的满足人们在共享资料方面的需求。但是现在的网络不是面向单一语言地区的,而是全球化的,这样一来以往的单一语种的网络硬盘系统就不能为使用不同语言的人们共享资料服务。多语种网络硬盘系统的出现就可以减少人们因语言不同而带来的语言障碍。而且通过B/S模式的系统使用起来更方便。1.3 课题的研究方法微软的.NET是目前应用最广泛、最成功的应用之一。它又很多优点,例如:它以应用最为广泛的WINDOWS操作系统作为基础、有大量相关的资料作为参考等等。系统的开发采用的是Microsoft.NET Framework 2.0,Microsoft.NET Framework 2.0是微软最新的应用架构。系统的开发工具为Microsoft Visual Studio 2005,开发语言为ASP.NET和C#.NET,数据库采用SQL SERVER 2000。2 开发知识背景2.1 ASP.NET 2.0简介ASP.NET页面以.aspx扩展名存储。页面由程序员将文本、标记(例如HTML)以及ASP.NET特定服务器标记和脚本组合在一起,然后存储在Web服务器上。可以将存储后的ASP.NET页面看成是一套描述如何创建一个HTML页面的指令。当该页面被请求浏览时,服务器端程序将会用纯标记来创建一个客户端浏览器可以读懂并能呈现(render)的页面。因为呈现后的输出是纯标记,所以任何浏览器都能够读懂;所有的动态过程都发生在Web服务器端。ASP.NET特定服务器标记非常强大,例如,它可以对用户的动作做出反应,连接至数据存储以及自动创建非常复杂的HTML结构。ASP.NET 2.0是目前比较新的版本,具有一些程序员可以使用的特定的服务器控件,用于在页面上添加数据交互。这些专门的数据控件分为两组:数据源控件和数据绑定控件。数据源控件创建与数据库的链接。数据绑定控件则从数据源控件获取信息,并在页面上创建呈现。这种简单的双控件模式可用于多种情况。对于多种数据库类型,甚至是非关系型数据源,都有相应的数据源控件。同样地,有多种数据绑定控件可用来在页面上生成表格、树型、列表以及其他数据格式。2.2 ASP.NET中的三层结构用三层结构主要是使项目结构更清楚,分工更明确,有利于后期的维护和升级三层结构包含:表示层(USL),业务逻辑层(BLL),数据访问层(DAL)1:数据库访问层:主要是对原始数据(数据库或者文本文件等存放数据的形式)的操作层,而不是指原始数据,也就是说,是对数据的操作,而不是数据库,具体为业务逻辑层或表示层提供数据服务2:业务逻辑层:主要是针对具体的问题的操作,也可以理解成对数据层的操作,对数据业务逻辑处理,如果说数据层是积木,那逻辑层就是对这些积木的搭建。3:表示层:主要表示WEB方式,也可以表示成WINFORM方式,WEB方式也可以表现成 .aspx, 如果逻辑层相当强大和完善,无论表现层如何定义和更改,逻辑层都能完善地提供服务。具体的区分方法 1:数据库访问层:主要看你的数据层里面有没有包含逻辑处理,实际上他的各个函数主要完成各个对数据文件的操作。而不必管其他操作。2:业务逻辑层:主要负责对数据层的操作。也就是说把一些数据层的操作进行组合。3:表示层:主要对用户的请求接受,以及数据的返回,为客户端提供应用程序的访问。2.3 B/S模式结构简介B/S结构(Browser/Server结构)结构即浏览器和服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。它的客户端就是浏览器,当系统需要升级,就不需要为每个现有的客户端应用程序升级,而只需对服务器上的服务处理程序进行修改。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本。以目前的技术看,局域网建立B/S结构的网络应用,并通过Internet/Intranet模式下数据库应用,相对易于把握、成本也是较低的。它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式(比如LAN, WAN, Internet/Intranet等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全 。B/S架构管理软件更是方便、快捷、高效。B/S架构一般模式如下图所示:网络数据库数据库服务器Web服务器Web浏览器Web浏览器Web浏览器服务器端客户端图1 B/S架构一般模式2.4 ASP.NET 网页资源概述如果创建的网页将由使用不同语言的用户阅读,则必须为这些读者提供用他们自己的语言查看网页的方法。一种方法是分别用各语言重新创建页面,但这种方法可能需要大量工作量、容易出错并且在更改原始页时很难维护。ASP.NET 为我们提供了一种方法,使用这种方法创建的页可以根据浏览器的首选语言设置或用户显式选择的语言获取内容和其他数据。内容和其他数据指的就是资源,此类数据可以存储在资源文件或其他源中。在 ASP.NET 网页中,可以将控件配置为从资源获取其属性值。在运行时,资源表达式将被相应资源文件中的资源替换。3 系统需求分析3.1 功能需求3.1.1 对文件夹的操作1. 浏览文件夹下的文件和文件夹用户进入系统时,用一个页面显示系统根目录下的文件夹及文件。用户还可以根据需要在此页面上对文件夹进行一级一级的浏览。与浏览文件夹下的文件和文件夹功能块相对应的页面也是系统的主页,它记录访问系统的客户端信息,并把客户端信息存储在数据库中,供系统统计使用。2. 新建文件夹既然是网络硬盘系统,那么它就应该和本地硬盘一样用户可以新建一些比较有个性、方便查找和管理的文件夹名。用户通过新建文件夹功能块可以在系统上创建以用户所需要的名字命名的文件夹,方便用户管理文件,同时也方便查找文件。3. 删除文件夹当用户有需要删除一个或多个文件夹的时候,则需要一个对应的删除文件夹的功能块。用户可以单击页面中的【】按钮可以删除选择的文件夹。为了防止用户误操作,当删除某一个文件夹时,需要弹出一个对话框来提醒用户,表示该文件夹是否真的可以被删除。如果操作成功,则显示提示消息;否则弹出失败对话框。4. 重命名文件夹一个文件夹不能够描述文件夹下的内容的时候,就需要对文件夹进行更名。当用户有需要变更文件夹名字的时候,单击页面中对应文件夹的【Edit】按钮进入重命名文件夹的页面。页面上的【确定】按钮触发事件以实现重命名文件夹的功能。5. 移动文件夹当文件夹放错了地方,或是文件夹不应该归在当前目录下时,就需要使用到移动文件夹的功能。单击移动文件夹的页面中的【移动到】按钮可以移动选择的文件夹。移动文件夹的步骤具体为以下三步:选择移动的文件夹;选择移动到的文件夹;单击【移动到】按钮移动文件夹。3.1.2 对文件的操作1. 上传文件上传文件作为网络硬盘最重要、最基础的功能,用户可以通过上传页面上传一个或同时上传多个文件。上传的文件保存在服务器硬盘中,并把文件信息保存到数据库中。2. 下载文件同样,下载文件也是网络硬盘最为重要和基础的功能,用户使用此项功能可以从服务器上下载所需要的文件到本地硬盘上来。3. 查看文件属性用户在使用系统时,光看某一个文件的名字有的时候并不能判断出这个文件是否是他所需要的,所以在系统中添加了查看文件属性这个功能块。当用户点击文件名,并由文件的链接进入查看文件属性页面,在页面中显示了文件的名字、所在目录、类型、大小和创建时间。4. 删除文件当一个文件过时或则已经没有用处的时候,这个文件还留在服务器的硬盘上,这就占用了服务器的硬盘资源,所以就需要删除文件这项功能。它实现方式和删除文件夹功能一样都是在同一页面中完成的。5. 移动文件文件上传的时候传错了地方或是将文件归类到其他文件夹的时候,就需要把文件移动到相应的文件夹下。它的实现和移动文件夹功能一样同是单击浏览文件页面中的【移动到】按钮来完成的。3.1.3 系统多语种化系统所面对的用户不是使用单一语言的某一特定地区的人群,而是面对不同地区,使用不同语言的人群。这就要求系统具有多种语言来应对这种需求。系统采用ASP.NET提供的使用网页资源本地化技术,来实现系统的多语种化。由于作者能力有限这里暂时先实现了三种语言,它们分别是:中文、日文和英文,其中中文为默认语言。3.2 出错处理需求要做到一个不出错的系统是非常难的,更何况系统是在短时间内完成的,系统出错是在所难免的。程序允许出错,但是要对错误进行相应的处理。这就需要一个专门的处理错误的页面。当系统发生异常时,系统会对异常进行捕获,然后把捕获的相关信息显示在错误处理页面。3.3 开发环境的搭建系统的用户可能使用的不同的平台来使用系统,系统是通过WEB形式运作,不同的平台都遵循WEB统一的协议。所以系统可以不用考虑用户使用的平台。在系统的开发过程中,采用的ASP.NET和C#.NET实现,这些都是微软的专属,所以开发的平台为WINDOWS。这里选用的操作系统为WINDOWS XP SP2。Visual Studio 2005是微软最新的开发工具,也是世界上最优秀的开发软件之一,它以强大的WINDOWS为基础。Visual Studio 2005支持ASP.NET 2.0中的所有特性。它能让我们在开发过程中少写70的代码。所以选择Visual Studio 2005作为开发工具。由于在课堂上学习数据库中,SQL SERVER 2000最为熟悉,而且SQL SERVER 2000有着大量的用户,它的技术也是相当的成熟。所以在系统的开发中选用SQL SERVER 2000作为系统数据库。4 系统的总体设计方案4.1 系统设计思想网络硬盘是目前比较流行的网络应用系统,它主要实现文件的共享与保存。系统设计严格按照系统的需求分析来设计,以满足人们对多语种网络硬盘的需求。4.2 系统业务概要描述及开发模型系统运行在服务器上,用户使用终端上的浏览器(Browser)通过网络来访问系统。系统能够自动识别浏览器上设置的默认地区码,并返回相应语言的信息给浏览器。用户可以在系统上进行对目录的新建、删除、浏览、修改操作,对文件的上传、下载、搜索、修改,查看操作。一般用户的操作流程是:首先通过浏览器进入系统,用户会看到相应语言的首页。然后再是用户对文件和目录进行的一些操作。服务端数据库数据库访问层业务逻辑层Internet用户界面层整个系统及外部关系概要图见下:图2 系统结构4.3 系统设计目标和原则系统实现了对文件和目录进行操作的八个功能,其中目录的操作为:添加、删除、更改名字,文件的操作为:查看属性、浏览、上传、下载、更改名字。其设计原则归纳起来有如下几点:1. 多语言:系统本着为使用不同语言的人使用同以系统的目的,采用最新的技术实现多语种化。由于时间的关系,系统目前只实现了英语、日语和中文三种语言。2. 友好性:系统维护简单、方便,用户界面直观清晰。3. 实用性:所有输入界面直观而方便,符合操作习惯和顺序。要求所有的显示内容简洁明了,美观,易懂。4. 可扩充性:系统采用三层结构设计,模块化设计,随时可以增加新的功能模块。4.4 系统基本模块设计在模块的设计开发过程中,值得注意的有模块的可维护性、可补充性、可读性以及可靠性等。其中最重要的是可维护性。可维护性是指理解、改正、改动、改进软件的难易程度,通常影响软件的可维护性的因素有以下三点: 1) 可理解性,提高软件的可理解性的措施:采用模块化的程序结构,书写详细正确的文档,采用结构化程序设计,使用良好的编程语言和程序设计风格; 2) 可测试性,测试和诊断软件中的错误的难易程度,提高软件可测试性的措施有:书写详细正确的文档,采用良好的程序结构,使用测试工具和调试工具,保存以前的测试过程和测试用例等; 3) 可修改性,提高软件的可修改性的措施有:采用各种设计准则如信息隐蔽原则、模块独立、模块间联系的低耦合、高内聚。模块的功能分别设计如下:1、 对目录操作模块:主要设计有以下几项功能:A. 添加文件夹;B. 删除文件夹;C. 更改文件夹名;2、 对文件操作模块:主要设计有以下几项功能:A. 查看文件属性;B. 浏览文件;C. 上传文件;D. 下载文件;E. 更改文件名字;3、 多语言化:主要设计有以下几项功能:A. 默认语言(中文);B. 英语;C. 日语;4、 错误处理页面设计:错误处理页面处理整个应用系统的错误信息。5、 数据库操作层:数据库操作层负责连接数据库、查询数据、插入记录等对数据库进行的操作。6、 业务逻辑层负责响应用户层传过来的请求,发给数据库操作层,并接收从数据库返回的结果以提供给用户界面层。5 系统的详细设计5.1 数据库设计数据库的名称为WebDiskDB,版本为SQL Server 2000。该数据库中有文件目录表Directory和文件属性表Url。在文件目录表Directory中:A、 DirID字段存储ID;B、 Name字段存储文件夹或文件的名称;C、 ParentID字段存储文件夹或文件父目录的ID;D、 Contain字段存储文件夹或文件大小;E、 FileCount字段存储包含文件的数量;F、 DirCount字段存储包含文件夹的数量;G、 Flag字段存储是文件还是文件夹的标识;H、 CreateDate字段存储文件夹或文件的创建时间表1 文件目录表字段名数据类型字段说明备 注DirIDintID主键(自动增一)Namevarchat(50)名称ParentIDint父目录IDContainint大小FileCountInt包含文件的数量DirCountInt包含文件夹的数量Flagbit文件标识1:文件夹;2:文件CreateDatedatetime创建时间在文件属性表Url中:A、 UrlID字段存储ID;B、 Url字段存储文件的链接地址;C、 Type字段存储文件的类型;D、 DirID字段存储文件在文件目录表中的DirID值;E、 CreateDate字段存储文件的创建时间;表2 文件属性表字段名数据类型字段说明备 注UrlIDintID主键(自动增一)Urlvarchar(255)链接地址Typevarchar(200)文件的类型DirIDint外键CreateDatedatetime创建时间5.2 设计错误处理页面错误处理页面ErrorPage.aspx处理整个应用系统的错误信息。当应用程序发生错误时,跳转到该页面,并在该页面显示错误信息。该页面设计比较简单。当页面初始化时,首先又函数Page_Load(object sender, EventArgs e)获取发生错误页面的地址,并把该地址保存在ViewState对象中,供页面上返回按钮相对应的事件BackBtn_Click(object sender,System.EventArgs e)使用。5.3 数据库操作层设计数据库操作层是直接与数据库打交到,它的上一层不需要了解这一层内部的详细结构,我们就把它用一个类Disk给封装起来,给它的上一层提供一个接口IDisk就行了。接口IDisk的实现:获取所有目录SqlDataReader GetAllDirectoryFile();获取子目录和文件信息SqlDataReader GetDirectoryFile(int nParentID);获取所有目录信息SqlDataReader GetDirectorys();获取子目录信息SqlDataReader GetDirectory(int nParentID);获取单个目录信息SqlDataReader GetSingleDirectory(int nDirID);新建一个目录int AddDirectory(string sName,int nParentID);重命名目录int EditDirectory(int nDirID,string sName);删除一个目录int DeleteDirectory(int nDirID);移动一个目录int MoveDirectory(int nDirID,int nParentID);获取所有文件SqlDataReader GetFiles();获取给定目录下的所有文件SqlDataReader GetFile(int nParentID);获取单个文件SqlDataReader GetSingleFile(int nFileID);上载一个文件int AddFile(string sName,int nParentID,int nContain,string sUrl,string sType);修改文件的名称int EditFile(int nFileID,string sName);删除一个文件int DeleteFile(int nFileID);移动文件 int MoveFile(int nFileID,int nParentID);搜索文件 SqlDataReader SearchFiles(string sKey);类Disk除了实现接口IDisk的所有方法外,类还定义了自己的方法ShowDirectory(DropDownList dirList,int nParentID)和方法CreateChildNode(DropDownList dirList,DataTable dataTable,int nParentID,string sParentName)。这两个方法实现按目录层次结果显示目录的信息。5.4 多语言化实现的设计在创建资源文件时,首先开始创建基文件 .resx。对于要支持的每种语言,分别创建一个新文件,该文件具有同一基本文件名但包含语言或语言及区域性(区域性名称)。在运行时,ASP.NET 使用与 CurrentUICulture 属性的设置最为匹配的资源文件。线程的 UI 区域性根据页的 UI 区域性进行设置。例如,如果当前的 UI 区域性是西班牙语,则 ASP.NET 使用.es.resx 文件的已编译版本。如果当前的 UI 区域性没有匹配项,则 ASP.NET 会使用资源后备;首先用特定区域性的资源,接着用非特定区域性,最后用默认资源文件。在 ASP.NET 中,可以创建具有不同范围的资源文件。可以创建全局资源文件,这意味着可以从位于网站中的任意页或代码读取这些资源文件。也可以创建本地资源文件,这些文件存储单个 ASP.NET 网页(.aspx 文件)的资源。将资源文件放入应用程序根目录的保留文件夹 App_GlobalResources 中,即可创建全局资源文件。App_GlobalResources 文件夹中的任何 .resx 文件都具有全局范围。此外,ASP.NET 还生成了一个强类型对象,这为开发人员提供了一种以编程方式访问全局资源的简单方法。本地资源文件是只应用于一个 ASP.NET 页的文件(带有 .aspx、.ascx、.master 等扩展名的 ASP.NET 页)。本地资源文件所放入的文件夹具有 App_LocalResources 保留名称。App_LocalResources 文件夹可以存在于应用程序的任何文件夹中,这与 App_GlobalResources 根文件夹不同。通过资源文件名将一组资源文件与特定的网页相关联。文件的基名称与页文件名相同,后跟语言和区域性名称,最后以扩展名 .resx 结尾。资源文件分为全局资源文件和本地资源文件,它们各有各的优点与缺点。使用全局资源文件可以在各页之间共享资源,并且全局资源文件中的资源还是强类型的,用于以编程方式访问。本地资源文件使得单个 ASP.NET 网页的资源比较容易管理,但不能在各页之间共享资源。此外,如果有许多页必须本地化为多种语言,则可能会创建大量本地资源文件。如果站点是具有许多文件夹和使用多种语言的大型站点,则使用本地资源可能快速地在应用程序域中扩展程序集的数量。多语种网络硬盘系统是一个小型的系统,它的文件夹比较少,如果采用本地资源文件,则它的代码管理起来不方便。所以在系统开发中采用全局资源文件。创建资源文件后,即可在 ASP.NET 网页中使用这些文件。通常使用资源来填充页上各控件的属性值。例如,可以使用资源设置 Button 控件的 Text 属性,而不必将该属性硬编码为特定的字符串。使用资源设置控件属性值,可以使用隐式本地化或显式本地化:隐式本地化使用的是本地资源,并允许将控件属性自动设置为匹配的资源;显式本地化可以使用资源表达式将控件属性设置为本地或全局资源文件中的特定资源。由于系统开发采用的是全局资源文件,所以这里就只能使用显式本地化。采用全局资源显式本地化时,必须为要设置的每个属性分别使用一个资源表达式。表达式为如下形式:,其中Class是可选的,ResourceID是必需的。下面就是使用全局资源本地化的具体过程。首先建立3个与语言相对应的资源文件leng.resx、leng.ja.resx、leng.en.resx,他们分别对应中文,日文,英文。其中leng.resx是基资源文件,也是默认或后备资源文件。在创建资源文件的时候,VS2005会自动将所创建的资源文件放到应用程序根目录的保留文件夹 App_GlobalResources 中。资源文件创建好后,接着创建资源文件中的键/值对应。例如:页脚部分将文件移动到另外一个文件夹的Button控件的Text属性的对应键名为moveto,它在基资源文件中leng.resx的值是:移动到;在日文资源文件leng.ja.resx中对应的值是:移動;在英文资源文件leng.en.resx中对应的值是:Moves to。然后在创建控件时,为控件绑定数据就可以实现。如:图3 绑定数据最后, 设置所有页的区域性和 UI 区域性。向 Web.config 文件添加一个 globalization 节,然后设置 uiculture 和 culture 属性为auto。这样在系统运行时就会根据客户端的地区信息来载入相关的语言了。5.5 主要用户界面层的实现用户界面层直接面向用户,它使用数据库操作层的方法来获取数据,这样开发难度就大大的降低了。5.5.1 主页的实现浏览网络硬盘由ShowDisk.aspx.cs实现。页面初始化时,要实现下面三个功能:(1) 获取参数DirID和ParentID的值(2) 显示DirList控件的目录信息。(3) 显示当前目录下的硬盘信息。如果参数DirID大于-1,则显示DirID目录下的信息;如果ParentID大于1,则显示ParentID目录下的信息;否则显示跟目录下的信息。上述功能由函数Page_Load(object sender, EventArgs e)实现。函数BindDirectoryData()显示控件DirList的目录信息,这些功能都是由函数ShowDirectory(DropDownList dirList,int nParentID)实现。函数BindDirectoryData()的程序代码如下:private void BindDirectoryData() /显示目录列表信息Disk disk = new Disk();disk.ShowDirectory(DirList,-1);if(DirList.Items.Count 0)DirList.SelectedIndex = 0;disk.ShowDirectory(MoveDirList,-1); 函数BindDirectoryData(int nParentID)首先根据参数nParentID从数据库中获取ID值为nParentID的目录和文件,然后使用DiskView控件显示文件夹和文件等信息,并设置【返回上级目录】按钮的可用性。函数BindDirectoryData(int nParentID)的程序代码如下:private void BindDirectoryData(int nParentID)/显示目录列表信息IDisk disk = new Disk();SqlDataReader dr = disk.GetDirectoryFile(nParentID);/绑定控件的数据DiskView.DataSource = dr;DiskView.DataBind();dr.Close();ReturnBtn.Visible = nParentID 0 ? true : false;页面在显示目录、文件的标志时,使用函数FormatImageUrl(bool bFlag,string sType)获取图象的链接地址。该函数根据目录或者文件的类型获取不同图象的链接地址。页面在显示目录、文件时,需要使用不同的链接地址。因此,页面使用函数格式化链接地址,由函数FormatHerf(int nDirID,int nParentID,bool bFlag)实现,该函数根据参数bFlag返回不同的链接地址。它的程序代码如下:protected string FormatHerf(int nDirID,int nParentID,bool bFlag) if(bFlag = true)return (ShowDisk.aspx?DirID= + nDirID.ToString() + &ParentID= + nParentID.ToString();elsereturn (ViewDisk.aspx?DirID= + nDirID.ToString() + &ParentID= + nParentID.ToString();改变DirList控件的选择时,需要重新绑定DiskView控件的数据。该功能由DirList控件的事件DirList_SelectedIndexChanged(object sender,EventArgs e)实现。它的程序代码如下:protected void DirList_SelectedIndexChanged(object sender,EventArgs e) /绑定控件的数据BindDirectoryData(Int32.Parse(DirList.SelectedValue);图4 硬盘主页5.5.2 文件上传页面的实现上载文件和同时上载多个文件的功能都由页面UploadFile.aspx实现。它的代码文件为UploadFile.aspx.cs。函数UploadFiles(int nParentID)实现上载文件的方法如下:(1) 从HttpContext的当前上下文的Request对象中获取所有文件,并用列表fileList保存。(2) 获取fileList中每一个文件,表示为hPostedFile。(3) 获取文件的名称并把它保存在硬盘上。(4) 从已经上传的文件信息保存到数据库中。(5) 在页面上显示已经上传的文件信息。图5 添加文件页面5.5.3 文件属性页面的实现查看文件属性由ViewDisk.aspx实现。ViewDisk.aspx在初始化时,首先从地址栏中获取参数nDirID和参数nParentID的值,然后显示文件的属性。函数BindFileData(int nDirID)根据参数nDirID从数据库获取文件的属性由于文件所在目录没有在数据库中直接保存,因此需要动态创建。该功能由函数CreateDir(int nDirID)和函数InsertParentDir(DataTable dataTable,intnParentID,StringBuilder sDir)实现。创建文件所在目录的具体方法如下:(1) 定义保存目录的字符串dirSB;(2) 从数据库中获取所有目录,并使用DataTable对象dataTable保存获取的结果;(3) 获取当前文件的父目录的DirID,并根据此DirID值获取它的名称,并把该名称添加到字符串dirSB中;(4) 获取步骤(3)文件的父目录,并重复步骤(3),直到ParentID的值为1。其中,步骤(1)和步骤(2)由函数CreateDir(int nDirID)实现,步骤(3)和步骤(4)由函数InsertParentDir(DataTable dataTable,intnParentID,StringBuilder sDir)实现。 图6 查看文件属性页面5.5.4 搜索文件页面的实现搜索文件功能由SearchFile.aspx实现,它的代码隐藏文件为SearchFile.aspx.cs。搜索功能是由SearchBtn_Click(object sender,EventArgs e)实现,具体代码如下:protected void SearchBtn_Click(object sender,EventArgs e)/定义对象IDisk disk = new Disk();/执行数据库操作SqlDataReader dr = disk.SearchFiles(Name.Text.Trim();FileView.DataSource = dr;FileView.DataBind();dr.Close();图7 搜索页面5.5.5 创建文件夹页面的实现创建文件夹功能由页面AddFolder.aspx实现,它的隐藏代码文件为AddFolder.aspx.cs。该功能由事件AddBtn_Click(object sender,EventArgs e)实现,它调用AddDirectory(string sName,int nParentID)添加新文件夹到数据库中。它的具体代码如下:protected void AddBtn_Click(object sender,EventArgs e)try /定义对象IDisk disk = new Disk();/执行数据库操作disk.AddDirectory(Name.Text.Trim(),Int32.Parse(DirList.SelectedValue);Response.Write(alert( + 添加数据成功,请妥善保管好你的数据! + ););catch(Exception ex) /跳转到异常错误处理页面Response.Redirect(ErrorPage.aspx?ErrorMsg= + ex.Message.Replace(,).Replace(n,)+ &ErrorUrl= + Request.Url.ToString().Replace(,).Replace(n,);5.5.6 重命名文件夹页面的实现重命名文件夹功能由页面EditFolder.aspx实现,它的代码隐藏文件为EditFolder.aspx.cs重命名功能的实现由事件EditBtn_Click(object sender,EventArgs e)实现,它调用函数EditDirectory(int nDirID,string sName)修改DirID值为nDirID的文件记录名称。它的具体代码如下:protected void EditBtn_Click(object sender,EventArgs e) try /定义对象IDisk disk = new Disk();/执行数据库操作disk.EditDirectory(nDirID,Name.Text.Trim();Response.Write(alert( + 修改数据成功,请妥善保管好你的数据! + );); catch(Exception ex) /跳转到异常错误处理页面Response.Redirect(ErrorPage.aspx?ErrorMsg= + ex.Message.Replace(,).Replace(n,)+ &ErrorUrl= + Request.Url.ToString().Replace(,).Replace(n,); 5.6 多语言关键技术实现1、 母板页母板页是ASP.NET 2.0中新增的功能,使用母板页可以为WEB应用程序中的页创建一致的布局。单个母板页可以为WEB应用程序中的所有页定义所需的外观何标准行为。然后可以创建包含要显示的内容的各个内容页。当用户请求内容页时,这些内容页与母板页合并以将母板页的布局与内容页的内容组合在一起输出。2、 资源本地化系统是以资源文件来实现系统的多语种化。资源文件是 XML 文件,其中包含要转换为不同语言或图像路径的字符串。资源文件包含键/值对,每一对都是一个单独的资源。键名不区分大小写。为每种语言(如英语和法语)或每种语言和区域性(如英语 英国、英语 美国)分别创建一个资源文件。每个本地化资源文件都有相同的键/值对;本地化资源文件与默认资源文件的唯一区别就是前者所包含的资源可能少于后者。ASP.NET 中的资源文件具有 .resx 扩展名。在运行时,.resx 文件将编译进一个程序集内,该程序集有时称为附属程序集。由于 .resx 文件是用与 ASP.N

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论