首页 > 精品范文库 > 8号文库
实验一:磁盘与文件管理
编辑:悠然自得 识别码:17-1017298 8号文库 发布时间: 2024-05-31 18:02:07 来源:网络

第一篇:实验一:磁盘与文件管理

实验一:磁盘与文件管理

【实训目的】

1.掌握利用 NTFS 文件系统实现磁盘限额

2.掌握利用 NTFS 文件系统压缩数据

3.掌握利用 NTFS 文件系统中的 EFS 加密数据

4.掌握共享文件夹的创建和访问

5.掌握卷影副本的作用和使用方法

【实验内容】

1.使用 NTFS 文件系统实现磁盘限额

2.使用 NTFS 文件系统压缩数据

3.使用 NTFS 文件系统中的 EFS 加密数据

4.练习创建、删除共享文件夹、访问共享文件夹、指定共享文件夹权限的方法

5.练习使用卷影副本恢复受到损坏的共享文件夹

6.验证用户的有效权限

【实验环境】

安装有 Windows Server 202_ 操作系统的计算机

【实训步骤】

任务 1:NTFS 文件系统一、使用 NTFS 文件系统实现磁盘限额

1.分配默认磁盘配额

(1)为驱动器 c盘(必须是NTFS 分区)配置默认的限额管理设置值:磁盘空间限度:2MB;磁盘空间警告信息:1MB

(2)建新用户 test,然后以 test 用户登录系统,向 data文件夹中分两次拷贝数据,1MB<第一次<2MB,第二次>2MB,哪一次拷贝成功?哪一次没成功?注:在“配额”选项卡中,若选中了“用户超出了配额限制时记录事件”和“用户超出了警告等级时记录事件”,则可以在“事件查看器”(在“计算机管理”对话框中)中查看日志。

2.为某用户指定磁盘配额

(1)创建新用户(student 学号)

(2)单击磁盘的 “配额” 选项卡中的 “配额项” 按钮,在打开的对话框中为用户 “student学号”指定磁盘限额。

(3)然后以“student 学号”登录计算机,测试所设磁盘配额。

二、使用 NTFS 文件系统压缩数据

1.对文件夹 data 进行启用磁盘压缩功能,以节省磁盘空间。

(1)向 data 文件夹中拷贝一些数据,打开文件夹的“属性”对话框,查看其大小和所占空间值,并记录下来。

(2)在“属性”对话框中,单击“高级”按钮,启用压缩功能,将文件夹进行压缩。

(3)右击 data 文件夹,选择“属性”,查看其大小和所占空间值,比较前面记录的数值。

2.采用其他颜色标记启用了压缩功能的文件和文件夹

打开 “Windows 资源管理器”,通过“工具”—“文件夹选项”—“查看”,选择“用交替的颜色显示压缩文件和文件夹”。

3.验证启用 NTFS 文件系统压缩功能的文件或文件夹在拷贝和移动时的继承性。

三、使用 NTFS 文件系统中的 EFS 加密数据

在 data 文件夹中新建文件 admin.txt,利用 EFS 加密 admin.txt 文件

(1)以用户 LocalUser1 登陆系统,对 admin.txt 文件进行加密

(2)以用户 LocalUser2 登陆系统,试图访问 admin.txt 文件,看是否能够打开任务

2:共享文件夹

一、使用共享文件夹共享文件

1. 在D 盘上创建一个文件夹 test,将该文件夹设为共享,在文件夹 test 内新建文件 ab.txt

要求:

(1)共享名为“network学号”

(2)允许同时连接 10 个用户

(3)查看 data 共享文件夹的权限,并删除 everyone组的完全控制权限

(4)将完全控制权限指定给用户“Administrator”和“Manager 学号”

(5)用户“LocalUser1”在任何时刻都不能更改此文件夹

2.分别通过“网上邻居”、“运行”对话框、“浏览器”、“映射网络驱动器”的方式访问 相邻计算机上所设置的共享文件夹

3.在相邻计算机上以 Administrator 用户访问共享文件夹 test,进行如下操

作:打开 test 文件夹,新建文件夹,新建文件 cd.txt,打开文件 cd.txt,更改文件 cd.txt 的内容,删除文件cd.txt,是否成功?为什么?

4.在相邻计算机上以 LocalUser1 用户访问共享文件夹 test,进行如下操作:打开 test文件夹,新建文件夹,打开文件ab.txt,更改文件 ab.txt 的内容,删除文件 ab.txt,新建文件cd.txt,是否成功?为什么?在本机以 LocalUser1 登录系统,执行上述操作,完成思考题 3。

5.删除 test 文件夹的共享功能,试图通过其他计算机以上述 4 种方式(步骤

2)访问 test 文件夹,是否能够成功?

6.在D 盘上建立一个隐藏的共享文件夹,试图通过其他计算机以上述 4种方式(步骤 2)访问该文件夹,完成思考题 1。

7.新建 data 文件夹,将 data 文件夹共享,共享文件名为:test,完成思考题 2。

二、卷影副本

Windows Server 202_ 网络操作系统,,提供的卷影副本服务功能可以对共享文件夹定期备份,一旦文件遭受损坏,在客户端就能将共享文件恢复到原来的某一时刻状态。

1.启用卷影副本服务。

在服务器端右击共享文件夹所在的硬盘分区(注意:这个分区一定是 NTFS 文件系统),选择“属性”—“卷影副本”标签页,在选项框中选择该硬盘分区,然后点击“启用”按钮。

2.调整创建副本文件时间间隔参数。

默认情况下Windows Server 202_ 卷影副本服务每天只能创建两个副本,有时不能满足我们的需要。可以根据需要设定创建副本的频率: 在“卷影副本”标签页中,点击“设置”—“计划”—“日程安排”—“高级”按钮,在“高级计划选项”对话框中选中“重复任务”选项,就可以对创建副本的时间间隔参数进行设置了。可以根据文件的重要程度进行设置。如设置为每“10 分钟”产生一次副本,要注意,时间间隔参数不要设置得过小,否则会加重系统的负担。

3.用户使用卷影副本功能(还原受到破坏的共享文件夹)

(1)首先在客户端要安装卷影副本客户端程序,它位于 Win2003 服务器的“%systemroot%system32clientstwclientx86twcli32.msi”中,只支持Windows 202_(SP3 或更高版本)和 Windows XP 客户操作系统。

(2)找到要还原的文件夹,右键点击,选择“属性”,切换到“以前的版本”标签页,接着在“文件夹版本”框中根据时间选择一个你需要的副本文件,点击“还原”按钮,这样该文件夹就恢复到原来的状态了。

三、用户的有效权限

通过为某一用户配置共享权限和 NTFS 权限,理解这两种权限是如何共同为网络访问文件夹提供安全性。

三条规则:

● 权限最大法则(累加权限):

● “拒绝”权限超越其他权限:

● 共享文件夹权限和 NTFS 权限取最严格的权限:

【思考题】

1.如何设置隐藏的共享文件夹?是否可以从网上邻居登录隐藏共享文件夹?

2.设置共享文件夹时,共享名是否必须与文件夹的名字一致?

3.共享文件夹的共享权限,对于本机访问起作用吗?

4.共享文件夹的共享权限有几种?哪几种?

5.什么是卷影副本?它有什么功能?实现卷影副本功能对服务器端有什么要求(必须是什么操作系统和什么文件系统)?

第二篇:实验一 磁盘管理和文件系统管理

实验一: 磁盘管理和文件系统管理

一、实验目的:掌握Windows Server 202_系统中的磁盘管理和文件系统管理,包括基本磁盘中分区的创建,动态磁盘中各种动态卷的创建。

二、实验属性:验证型

三、实验环境

Pentium 550Hz以上的CPU;

建议至少512MB的内存;

建议硬盘至少10GB,并有5GB空闲空间。

四、实验内容

磁盘的管理

文件系统的管理

五、实验步骤

(一)、磁盘管理

1、在虚拟机中再添加两块磁盘(问题1:在虚拟机中如何添加新的磁盘?)。

2、使用磁盘管理控制台,在基本磁盘中新建主磁盘分区、扩展磁盘分区和逻辑驱动器,并对已经创建好的分区做格式化、更改磁盘驱动器号及路径等几个操作。(问题2:在一台基本磁盘中,最多可以创建几个主磁盘分区?问题3:将FAT32格式的分区转换为NTFS格式的完整命令是什么?)

3、将三块基本磁盘转换为动态磁盘。(问题4:如何将基本磁盘转换为动态磁盘?问题5:什么样的磁盘由基本磁盘转换为动态磁盘后系统需要重新启动?)

4、在动态磁盘中创建简单卷、扩展简单卷、创建跨区卷、扩展跨区卷、创建带区卷、镜像卷和RAID5卷,并对具有容错能力的卷尝试数据恢复操作,掌握各个卷的特点和工作原理。(问题6:哪些卷可以扩展?问题7:哪些卷具有容错功能?问题8:哪个卷可以包含系统卷?问题9:哪些卷需要跨越多个磁盘?问题10:哪个卷至少需要3块磁盘?)

5、将某个磁盘设为压缩磁盘并观察其中文件和文件夹有何变化。(问题11:复制和移动文件时,文件的压缩属性如何改变?)

6、利用磁盘配额工具,对不同的用户分配相应的磁盘空间。(问题12:使用磁盘配额的好处?问题13:使用磁盘配额的前提条件有哪些?)

7、利用磁盘整理、磁盘查错等工具,实现对磁盘的简单维护。

8、设置文件和文件夹的压缩和加密。(问题14:NTFS分区中的文件和文件夹能同时加密和压缩吗?问题15:系统分区中的文件能否加密?)

(二)文件系统管理

NTFS文件系统下,文件及文件夹的访问控制权限如何设置。

六、实验报告要求:写明实验名称,实验目的,实验属性,实验步骤,心得体会。

第三篇:操作系统课程设计++模拟磁盘文件管理的程序

中南林业科技大学

操作系统课程设计

课程题目:模拟磁盘文件管理的程序

姓名: 学号:

专业: 计算机科学与技术 年级:

202_

计算机科学学院

202_年11月 模拟磁盘文件管理的程序

一、课程设计内容

⑴ 自定义磁盘文件管理的数据结构; ⑵ 能够自由创建、修改、删除文件; ⑶ 文件具有一定自定义的属性; ⑷ 能够显示当前系统文件的状态。

二、课程设计的数据结构说明

程序中定义了两个类: class file//文件类 {private: char name[10];//文件名 public: int tag;//删除标记 1:已删 0:未删 file(){ } char *getname(){return name;} //获取文件名

int gettag(){return tag;} //获取删除标记

int getlength(){return length;} //获取文件大小

int getblocknum(){return blocknum;} // 磁盘块数

int getblocksum1(){return blocksum1;} //磁盘块号的始点 int getblocksum2(){return blocksum2;} //磁盘块号的终点 int length,blocknum,blocksum1,blocksum2;

void setname(char na[ ]){strcpy(name,na);} //设置文件名 void delwenjian(){ tag=1;}//设置删除标记 1:已删 0:未删

void creatfile(char *na,int L,int num,int s1,int s2)//创建文件 void deltefile(char *na){tag=1;strcpy(name,na);} //删除文件 void disp()//输出文件信息 class fdatabase //文件库类 { private: int top;//文件记录指针 file f[50];public: fdatabase(){top=-1;} //构造函数 int search(char *fname)//按文件名查找

int creatfile(char *na,int L,int num,int s1,int s2)//创建文件时先查找是否存在

int deltefile(char *na)//删除文件时先查找是否存在 void disp()//输出所有文件信息 };

三、课程设计的模板说明

1、初始化,建立文件系统

输入磁盘大小(G),每个盘块大小(M),自动建立位示图,位示图字长定为32位

输出位示图的行数,以及行号、列号与磁盘块号的转换公式(都从0开始编号)。

2、循环选择执行以下功能

1、存储文件

输入建立的文件名和文件大小,如果该文件名已经存在,则输出不能建立的信息否则计算所需的磁盘块数

为其分配足够多的磁盘块,并记录下来 输出所占用的磁盘块号

2、删除文件

输入要删除的文件名,如果该文件名不存在,则输出删除错误信息,否则收回该文件所占用的磁盘块 删除该文件名

3、显示位示图情况

显示位示图的情况 显示剩余磁盘块的数目

4、显示文件列表

显示文件名,文件大小,占用的磁盘块数目和磁盘块号

四、课程设计的源代码

#include #include #include #include #include int i=0,j=0,sum=0,tt=0,r,ii,k,g,m;int a[100][32];class file//文件类 {private: int no;//文件编号

char name[10];//文件名 public: int tag;//删除标记 1:已删 0:未删 file(){ } char *getname(){return name;} //获取姓名

int gettag(){return tag;} //获取删除标记

int getno(){return no;} //获取文件编号

int getlength(){return length;} //获取文件大小

int getblocknum(){return blocknum;} // 磁盘块数 int getblocksum1()//磁盘块号的始点 { return blocksum1;} int getblocksum2()//磁盘块号的终点 { return blocksum2;} int length;//文件大小

int blocknum;//盘块数

int blocksum1;//所占盘块号的始点

int blocksum2;//所占盘块号的终点

void setname(char na[ ])//设置文件名

{strcpy(name,na);} void delwenjian(){ tag=1;}//设置删除标记 1:已删 0:未删

void creatfile(char *na,int L,int num,int s1,int s2)//创建文件 { tag=0;length=L;blocknum=num;blocksum1=s1;blocksum2=s2;strcpy(name,na);blocknum=length/m;//盘块数=文件大小/盘块大小 if(length%m!=0)//盘块数取上整 blocknum=blocknum+1;cout<<“ 所需磁盘块数:”<

for(;j<32;j++)

a[i][j]=1;i=i+1;for(j=0;j<(sum+blocknum)-32;j++)//再进行剩余项赋值

{

a[i][j]=1;} sum=sum+blocknum-32;} tt=tt+blocknum;//输出文件所占用的盘块号

cout<<“ 所占磁盘块号:”<

{

for(ii=0;ii<=top;ii++)

{ if(strcmp(f[ii].getname(),fname)==0 && f[ii].tag==0)

return 0;

}

return 1;} int creatfile(char *na,int L,int num,int s1,int s2)//创建文件时先查找是否存在

{ int p;p=search(na);

if(p==1)

{ top++;

f[top].creatfile(na,L,num,s1,s2);

return 1;}

else

{cout<<“!!该文件已存在,不能创建!!nn”;

return 0;} } int deltefile(char *na)//删除文件时先查找是否存在{int b,p,x=0,n1,n2,q1,q2,t;p=search(na);if(p==0)//若文件存在

{ //进行删除文件赋值

f[ii].tag=1;b=f[ii].length/m;//盘块数=当前文件大小/盘块大小

if(ii==0)// 对第一个删除文件进行赋值

for(k=0;k

a[x][k]=0;

else{ n1=(f[ii-1].blocksum2+1)/32;//被查找的文件之前文件所占用的盘块数

/32,//大于0表示跨行

n2=(f[ii].blocksum2+1)/32;//所有文件所占用的盘块数/32,大于0表示跨行

q1=(f[ii-1].blocksum2+1)-n1*32;// 当前文件的开始盘块号 q2=(f[ii].blocksum2+1)-n2*32;// 用于跨行后计算盘块号 t=n2-n1;if(t==0)//若n2与n1相等,表明当前所有被占用盘块在同一行

for(k=q1;k<1+b;k++)

a[n2][k]=0;

else { if((f[ii-1].blocksum2+1)%32==0)//前面所占用的盘块数是32倍数

{ x=x+n1;//当前文件赋值

for(;t-1>=0;t--,x++)//循环进行整行赋值

for(k=0;k<32;k++)

a[x][k]=0;

x=n2;//对剩余项赋值

for(k=0;k

a[x][k]=0;

} else //对当前文件前几项赋值

{ x=n1;

for(k=q1;k<32;k++)

a[x][k]=0;x=x+1;int t1=t;

for(;t-1>0;t--,x++)//中间整行赋值

for(k=0;k<32;k++)

a[x][k]=0;

x=n2;//最后剩余项赋值

for(k=0;k<(f[ii].blocksum2+1)-t1*32;k++)

a[x][k]=0;

}

} return 1;} } else

{cout<<“该文件不存在”;

return 0;}

} void disp()//输出所有文件信息 { for(int i=0;i<=top;i++)

if(f[i].tag==0)

f[i].disp();} };void bit_map(int I){ int s=0;cout<<“-”<

cout<

out<<“--”<>g;cout<>m;cout<

a[i][j]=0;

cout<<“ 建立的位示图为:”<

cout<<“ 行数:”<

cout <<“ttt1

存 储 文 件nnttt2

删 除 文 件 nnttt3 显示位示图情况 nnttt4 显示文件列表”<> choice;cout<

case '1':

cout <<“ 请输入文件名: ”;

cin>>fname;

cout<

if(q==0)

{ cout<<“!!该文件已存在,不能创建!!nn”;

break;}

cout <<“ 请输入文件大小MB: ”;

cin>>l;

cout<

if(l>g*1024)

{cout<<“!!文件大小超过磁盘最大容量,无法进行分配!!”<

break;}

p.creatfile(fname,l,b,ss1,ss2);

break;

case '2':

cout <<“ 请输入文件名: ”;

cin>>fname;

cout<

q=p.search(fname);

if(!q==0)

{

cout<<“!!该文件不存在,无法删除!!nn ”;

break;

} p.deltefile(fname);

break;case '3':

cout <<“tt**************显示位示图如下*********************n”;

bit_map(I);

cout<

break;

case '4': cout <<“tt*************文件列表如下************************n”;cout<<“-”<

p.disp();

cout<

break;default:

cout<<“输入错误,请从新输入: nn”;

break;} } }

五、课程设计程序运行结果

1、初始化,建立文件系统

(1)用户根据提示输入磁盘大小(GB)与每个盘块大小(MB);

(2)程序首先根据用户输入的磁盘大小(GB)与每个盘块大小(MB),自动建立位示图,即初始化位示图,位示图每一行长度固定为32位(即列固定为32);位示图中每一位表示一个盘块,取值0和1分别表示空闲和占用。初始化的位示图应全为0;

(3)程序再输出位示图的剩余盘块数,行数,以及行号、列号与磁盘块号的转换公式(行列皆从0开始编号);

这样,初始化,建立文件系统完成。运行结果:

2、选择执行:存储文件,删除文件,显示位示图情况,显示文件列表 【显示文件管理系统列表】显示文件系统管理列表,并提示输入信息1——4。用户输入文件操作命令1(存储文件),2(删除文件)、3(显示位示图情况)、4(显示文件列表);

格式如下:键入1,创建文件名为fname,大小为L(MB)的文件;

键入2,删除文件名为fname的文件;

键入3,显示位示图情况;

键入4,显示所有文件信息。

运行结果:

【存储文件】

用户输入文件操作命令是1(存储文件)。系统提示你输入你要建立的文件名和文件大小,如果该文件名已经存在,则系统提示输出不能建立此文件的信息,否则计算所需的磁盘块数和所占用的磁盘块号,并输出结果。相应的在位示图上,因为位示图是矩阵,可以用数组存储,根据所占用的磁盘块号和公式:

磁盘块号=行号*32+列号 行号=磁盘块号/32

列号=磁盘块号%32 计算出文件占用的磁盘块在位示图上的位置,现在是创建文件,所以将位示图该位置上的二进制数置1,表示已分配出去。

分别创建名为ll,zz和mm三个文件,文件大小分别为224MB,320MB和56MB。

此时对应的位示图如下:

文件列表如下:

若再创建一个已经创建过的文件,则显示如下信息:

若创建的文件大小超过磁盘的最大容量,则显示如下信息:

【删除文件】

用户输入文件操作命令是2(删除文件)。系统提示你输入要删除的文件名,如果该文件名不存在,则输出删除出错信息。在位示图上,根据所占用的磁盘块号和公式:

磁盘块号=行号*32+列号 行号=磁盘块号/32 列号=磁盘块号%32 计算出文件占用的磁盘块在位示图上的位置,现在是删除文件,所以将位示图该位置上的二进制数置0,表示收回该文件所占用的磁盘块。删除第二个文件zz,结果如下:

则相应的位示图和文件列表变为:

若删除一个不存在的文件,则显示如下信息:

【显示位示图情况】

如果用户输入文件操作命令是我wst()(显示位示图情况),系统输出此时位示图的情况,状态位为'0'表示对应盘块空闲,状态位为'1'表示该盘块已被分配出去。系统再显示剩余磁盘块的数目。

以下是删除zz文件,创建xx后和创建xx后,删除ll的位示图:

【显示文件列表】

如果用户输入文件操作命令是disp()(显示所有文件情况),系统会显示所有文件的文件名,文件大小,占用的盘块数和盘块号。

以下是删除zz文件,创建xx后和创建xx后,删除ll显示的文件列表:

第四篇:Java 实验 文件管理与IO流

作业要求:每个题保存为一个.java文件,保存在同一工程文件夹中,文件夹的名字为E:Java你的班级+姓名,例如:E:Java信息11张三。

注意:上交的程序包含程序的执行结果,以注释的形式附在程序后面。

实验六文件管理与I/O流

一、实验目的1.熟悉用文件File类创建、删除、查看文件或目录。

2.字节流、字符流、缓冲流、随机流等流式文件的创建,读写操作。

3.用字符流和缓冲流从键盘接受字符串的方法。

二、实验内容

1.先运行该程序。源文件是sy6_1.java。然后按【思考问题】分析程序。

import java.io.*;

public class sy6_1{

public static void main(String[] args)throws Exception

{

int x=0;

File Mypath;

Mypath=new File(“E:aaaa”);

if(!Mypath.exists())

{System.out.println(“创建新目录”);Mypath.mkdir();}

else System.out.println(“目录已存在”);

File Myfile1=new File(Mypath,“myfile1.txt”);

File Myfile2=new File(Mypath,“myfile2.txt”);

File Myfile3=new File(Mypath,“myfile3.txt”);

FileInputStream Fin=new FileInputStream(Myfile1);

FileOutputStream Fout=new FileOutputStream(Myfile1);

DataOutputStream Dout=new DataOutputStream(new FileOutputStream(Myfile2));

DataInputStream Din=new DataInputStream(new FileInputStream(Myfile2));

PrintWriter PWout=new PrintWriter(new FileWriter(Myfile3));

RandomAccessFile RAread=new RandomAccessFile(Myfile3,“r”);

String str;

int num1;

BufferedReader buf;//缓冲流

buf=new BufferedReader(new InputStreamReader(System.in));

System.out.print(“请输入一个小于255整型数:”);

while(!(str=buf.readLine()).equalsIgnoreCase(“q”))

{ System.out.print(“请输入另一个小于255整型数,按Q结束:”);

num1=Integer.parseInt(str);

Fout.write(num1);

}Fout.close();

System.out.println(“你刚输入的数据是:”);

while((x=Fin.read())!=-1)

{ System.out.println(x);

}Fin.close();

System.out.print(“请输入int范围内整型数:”);

while(!(str=buf.readLine()).equalsIgnoreCase(“q”))

{ System.out.print(“请输入另一个整型数,按Q结束:”);

num1=Integer.parseInt(str);

Dout.writeInt(num1);

}Dout.close();

int leng=Din.available()/4;

int xxx=0;

while(xxx

{ xxx++;

x=Din.readInt();

System.out.println(x);

} Din.close();

System.out.print(“请输入第一个字符串:”);

while((str=buf.readLine())!=null)

{ System.out.print(“请输入另一个字符串,按Ctrl+Z结束:”);

PWout.println(str);//写入myfile3.txt中

} PWout.close();

RAread.seek(0);

while(RAread.getFilePointer()

{System.out.println(RAread.readLine());//从myfile3.txt中一行一行读并输出在控制台上

} RAread.close();

System.out.println(“完成”);

}

}

【思考问题】

① 本程序共用到哪几种流式文件?都用于做什么?

答:基本输入输出流:System.in.输入(从键盘)

System.out.输出(显示器)

字节流类:FileOutputStream 文件输出

FileInputStream 文件输入

DataOutputStream数据输出

DataInputStream数据输入

字符流类:PrintWriter输入

缓冲文件流:BufferedReader

② 运行完程序后,请用“我的电脑”找到创建的文件,并分别打开文件看其内容,你

看到的是你输入的数据吗?

答:myfile1和myfile2中的数据非输入数据,myfile3中可以看见输入的数据。③ 将创建输入流对象Fin放在输出流Fout前,看发生什么?

④ 对第二种流式文件判断文件占用字节的长度用available()方法,而此处用int

leng=Din.available()/4;为什么除以4?

2.按照第1题的内容,修改程序要求每次重新运行不覆盖原内容,把所有其它流式文件全部改用随机流式文件来实现,新的数据填加在文件尾,然后读出校验。

import java.io.*;

public class sy6_2 {

public static void main(String[] args)throws Exception {

File Mypath;

Mypath = new File(“E:aaa”);

if(!Mypath.exists())

{System.out.println(“创建新目录”);Mypath.mkdir();}

else System.out.println(“目录已存在”);

File Myfile1 = new File(Mypath, “myfile1.txt”);

File Myfile2 = new File(Mypath, “myfile2.txt”);

File Myfile3 = new File(Mypath, “myfile3.txt”);

RandomAccessFile rf1 = new RandomAccessFile(Myfile1, “rw”);

RandomAccessFile rf2 = new RandomAccessFile(Myfile2, “rw”);

RandomAccessFile rf3 = new RandomAccessFile(Myfile3, “rw”);

String str;

int num1;

BufferedReader buf;//缓冲流

buf = new BufferedReader(new InputStreamReader(System.in));

System.out.print(“请输入一个小于255整型数:”);

rf1.seek(rf1.length());//指针移到文件尾进行写操作

while(!(str=buf.readLine()).equalsIgnoreCase(“q”))

{ System.out.print(“请输入另一个小于255整型数,按Q结束:”);num1=Integer.parseInt(str);

rf1.write(num1);//将整型数作为ascii码值所对应的字符写入myfile1.txt中}

rf1.seek(0);//指针移到文件头进行读操作

int x=0;

while((x=rf1.read())!=-1)

{

System.out.println(x);

} rf1.close();

System.out.print(“请输入int范围内整型数:”);

rf2.seek(rf2.length());

while(!(str = buf.readLine()).equalsIgnoreCase(“q”)){

System.out.print(“请输入另一个整型数,按Q结束:”);

num1 = Integer.parseInt(str);

rf2.writeInt(num1);

}

int x1 = 0;

for(int l = 0;l

{

rf2.seek(l*4);

x1 = rf2.readInt();

System.out.println(x1);

}

rf2.close();

System.out.print(“请输入第一个字符串:”);

rf3.seek(rf3.length());

while((str = buf.readLine())!= null){

System.out.println(“请输入另一个字符串,按Ctrl+Z结束:”);rf3.writeUTF(str);//写入myfile3.txt中

}

rf3.seek(0);

while(rf3.getFilePointer()< rf3.length()){

System.out.println(rf3.readUTF());//从myfile3.txt中读出字符串并输出在控制台上

}

rf3.close();

System.out.println(“完成”);

}

}

三、实验报告要求

1.回答第1题【思考问题】提出的问题。

2.写出第二题要求的源程序。

第五篇:文件服务器磁盘配额管理

配额管理

Windows Server 203 R2“文件服务器”的“配额管理”包括如下功能:

(1)通过创建配额来限制允许卷或文件夹使用的空间,并在接近或达到配额限制时生成通知。

(2)生成应用于卷或文件夹中所有现有文件夹以及以后创建的任何新子文件夹的自动配额。(2)定义配额模板,并且定义的配额模板可以很容易应用于新的卷或文件夹以及可以在整个组织中使用。

Windows Server 202_ R2的“文件服务器”中的配额模板是非常灵活的,例如:(1)您可以为服务器上每个用户的个人文件夹设置200 MB的限制,并在达到180 MB存储空间时通知您和用户。

(2)您可以为指定的用户组的共享文件夹设置灵活的500 MB配额。达到此存储限制时,将通过电子邮件通知组中的所有用户,存储配额已临时扩展到520 MB,以便用户可以删除不必要的文件并符合预设的500 MB配额策略。

(3)可以在临时文件夹达到2 GB时接收通知,然而不限制该文件夹的配额,因为服务器上运行的服务需要。

按照组件过程:添加删除组件-管理监视工具-文件服务管理+配额管理,就不一一的详细叙述了。创建配额

在“文件服务器”中创建配额的步骤如下:

(1)双击“文件服务器资源管理器”展开,如图4-16所示。

图4-16 文件服务器资源管理器窗口

(2)在如图4-16所示的窗口中双击“配额管理”将其展开,右击“配额”选项,如图4-17,在展开的快捷菜单中选择“创建配额”命令,打开“创建配额”对话框,如图4-18所示。

图4-17 选择创建配额选项

图4-18 打开创建配额对话框

(3)在“配额路径”文本框中,选择或键入将应用该配额的文件夹的路径。注意,配额属性还将应用于其所有的子文件夹。选中“在路径上创建配额”单选按钮,在“配额属性”选项组中的“从此配额模板派生属性”下拉列表中选择其配额属性。本例中选择“100 MB限制”,如图4-19所示。单击“创建”按钮完成配额的创建,如图4-20所示。

图4-19 设置配额路径和属性

图4-20 完成配额的创建

(4)在图4-19所示的窗口中,从“配额属性”选项组上选中“定义自定义配额属性”单选按钮,单击“自定义属性”按钮,打开“配额属性”对话框,如图4-21所示。单击“确定”按钮,打开“将自定义属性另存为模板”对话框。键入模板名(如:dfs1),如图4-22所示。

图4-21 自定义配额属性

图4-22 输入模板名

(5)单击“确定”按钮,完成配额的创建,如图4-23所示。

图4-23 完成配额创建并生成配额模板

2创建配额模板 “文件服务器”中提供的配额模板是有限的,如果模板不能满足需求,可以创建新的模板,方法如下:

(1)在图4-23所示的窗口中,右击“配额模板”,在展开的快捷菜单中选择“创建配额模板”命令,如图4-24所示。将打开“创建配额模板”对话框,在“从配额模板复制属性”中的下拉列表中选择“100 MB 限制”,在“设置”选项卡中“模板名”文本框中键入模板名,本例用“dfs1”。在“空间限制”选项组中“限制”文本框中键入空间大小,如150,下拉列表中选择“MB”。选中“硬配额”单选按钮,如图4-25所示。

图4-24 选择创建配额模板选项

图4-25 打开创建配额模板对话框

(2)在“通知阀值”选项组中单击“添加”按钮,打开“添加阀值”对话框,如图4-26所示。在“电子邮件”选项卡中,选中“将电子邮件发送到下列管理员”复选框,在下列文本框中键入管理员邮件地址,如hanxiaoqi129@sohu.com;若想要将电子邮件发送到时超出该阀值的用户,可选中“将电子邮件发送到超出该阀值的用户”复选框。单击“其它电子邮件标题”按钮,打开“其他电子邮件标题”对话框,键入发件人地址,如qiling8139@163.com,抄送地址和密件抄送地址,如图4-27所示。

如图4-26 打开添加阀值对话框

如图4-27 输入邮件地址

(3)在“事件日志”选项卡中,选中“将警告发送至事件日志”复选框,在“警告消息”选项组中,可编辑默认的日志项,本例中使用默认,如图4-28所示。

图4-28 设置“事件日志”选项卡

(4)在“命令”选项卡中,选中“运行该命令或脚本”复选框,指定在达到阈值时是否运行命令或脚本,在“命令安全”选项组中,可指定运行该命令的安全级别,如图4-29所示。

图4-29 设置“命令”选项卡

(5)在“报告”选项卡中,选中“生成报告”复选框,在“选择要生成的报告”中的下拉列表中选择“按所有者分类的文件”、“按文件组分类的文件”“大文件”等复选框,查看所选报告可单击“查看所选报告”按钮,将打开“查看所选报告”对话框,如图4-13所示。选中“将报告发送至下列管理员”复选框,在“将报告发送至下列管理员”文件框中键入管理员电子邮件地址,本例中使用hanxiaoqi129@sohu.com,如有多个邮件地址用分号分隔,若想把生成的报告发送至超出阀值的用户,可选中“把报告发送至超出阀值的用户”复选框,如图4-30所示。

如图4-30 设置“报告”选项组

(6)创建模板完成后,在图4-30中单击“确定”按钮。

3创建自动配额

通过使用自动配额,可以为文件夹指定配额模板,并指定自动生成基于该模板的配额并应用于现有的子文件夹以及以后创建的任何新子文件夹。例如,可以为按需求为漫游配置文件用户或新用户创建的文件夹定义自动配额。每次创建新文件夹时,将使用其父文件夹的自动配额配置文件中定义的模板来为该文件夹自动生成新配额项。然后,可以在结果窗格中的“配额”节点下查看这些自动生成的配额项,作为分别创建的配额查看,可以单独进行编辑和修改。

创建自动配额的步骤如下:

(1)在图4-17所示的窗口中,单击“创建配额”命令,打开“创建配额”对话框,如图4-18所示。在“配额路径”文本框中,选择或键入将应用该配额的文件夹的路径。本例中选择“F:hjx”目录,选中“在现有子文件夹和新的子文件中自动应用模板并创建配额”单选按钮,在配额属性选项组中,选中“从此配额模板派生属性”在其下拉列表中选择配额属性。本例中选择“100 MB 限制”。如图4-31所示。

图4-31 设置配额路径和属性

(2)单击“创建”按钮,打开“文件服务器资源管理器”窗口,如图4-32所示。

图4-32 完成自动配额的创建

4编辑配额模板的属性

在更改配额模板时,可以选择将这些更改扩展到使用原始配额模板创建的配额上。可以选择只修改那些仍与原始模板匹配的配额或从原始模板派生的所有配额,无论自创建后对配额进行过任何修改都是如此。此功能通过提供一个可进行所有更改的中心点,简化更新配额属性的过程。

(1)在图4-23所示的窗口中,双击“配额模板”项,展开配额模板,在配额模板列表中选择“dfs1”,右击该模板,在弹出的快捷菜单中选择“编辑模板属性”命令,如图4-33所示。将打开“编辑模板属性”对话框,如图4-34所示。

图4-33 选择“编辑模板属性(P)„”命令

图4-34 打开配额模板属性对话框

(2)在“空间限制”选项组中的“限制”文本框中键入200,选中“软配额 允许用户超出限制(用于监视)”单选按钮,如图4-35所示。

如图4-35 修改配额模板属性

(3)单击“确定”按钮,打开“更新从模板派生的配额”对话框,选中“仅将模板应用于与原始模板匹配的派生配额”单选按钮,如图4-36所示。

如图4-36 设置模板应用范围

(4)单击“确定”按钮,完成模板属性的修改,如图4-37所示。

如图4-37 修改DFS1模板属性 编辑自动配额模板的属性

在更改自动配额时,可以选择将这些更改扩展到自动配额路径中现有的配额上。可以选择只修改那些仍与原始自动配额匹配的配额或自动配额路径中的所有配额,无论自创建后对配额进行过任何修改都是如此。此功能通过提供一个可进行所有更改的中心点,简化更新从自动配额派生的配额属性的过程。

(1)在图4-32所示的窗口中,双击“配额”展开“配额”项,如图4-38所示。在“配额”列表中选中“F:hjx*„”模板,右击该模板,在弹出的快捷菜单中选择“编辑配额属性”命令,如图4-39所示,打开“编辑自动应用配额”对话框,如图4-40所示。

图4-38 展开配额选项

图4-39 选择编辑配额命令(2)在“编辑自动应用属性”选项组中的“从此配额模板派生属性”的下拉列表中选择“200 MB 限制,50 MB 扩展”项,如图4-40所示。

图4-40 修改自动应用配额属性

(3)单击“确定”按钮,打开“更新从自动应用配额派生的配额”对话框,从中选中“仅将自动应用配额应用于原始自动应用配额匹配的派生配额”单选按钮,如图4-41所示。单击“确定”按钮,完成自动配额模板的属性的修改,如图4-42所示。

图4-41 选择自动配额应用范围

图4-42 显示修改后模板信息

实验一:磁盘与文件管理
TOP