在计算机桌面上的回收站作用是,计算机桌面回收站的设置(回收站的概念及设置、使用说明)...

①:回收站的概念:

什么是回收站?

回收站是一个空间,即存放文件的空间;那么,这个空间从何而来呢?

如果你使用的计算机其硬盘划分为四个区,分别为C,D,E,F盘,总大小为80G,那么,你的回收站空间默认大小是该硬盘总空间的10%,即8G;另外,通过设置,你还可以分别设置回收站独立对应于每一个盘符,默认的也是回收站站每个盘的10%;

以上两种情况中的10%,都可以进行设置!

总体来讲,回收站就是硬盘总空间的其中一部分,它是使用来存放被临时删除的文件的地方,相当于生活中的垃圾桶,不需要的东西统统扔往垃圾桶!

以上涉及到一个概念,即被临时删除的文件?被临时删除的文件,会跑到回收站保存起来,这样的文件只是在逻辑上进行了删除,如果需要,还可以恢复这样的文件;与逻辑删除对应的即是物理删除,如果对某一个对象进行了物理删除,那么,该对象便不会跑到回收站保存起来,而是直接就被清除计算机,再也找不回来了!(选择一个对象,同时按Shift+Delete,那么该对象即被物理删除)

②:回收站的设置:

一般情况下,回收站可以在计算机桌面上找到其对应的图标,要对它进行操作,首先选择回收站图标,点右键,找到“属性”命令左键点一下,即可弹出“回收站 属性”对话框,相关的设置即可在这里进行操作,如下图:

c56b0e3b65d91ac4ba44de0672560a5a.gif

常用常见的设置:

1:删除回收站不弹出删除确认对话框;

如上图,把“显示删除确认对话框”前面的√去掉即可;

2:进入回收站的各种文件直接被删除,而不需要再次进行删除操作

如上图,把“删除时不将文件移入回收站,而是彻底删除”前面的框打上√即可;这样一来,以后操作的时候,把任何文件拖入到回收站,那么该文件即在此刻被删除计算机,无法从回收站恢复任何文件;

3:设置回收站空间的大小;

以上我们讲过了,回收站的默认大小是你所使用的计算机的硬盘总空间的10%;在这里,你可以根据其大小,上图中只选择选中“独立配置驱动器”,就可以切换到其他盘符选项卡进行设置了,可改大亦可改小,相关的操作自行探索,不再阐述!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是使用C语言实现模拟Unix系统磁盘成组链的基本流程: 1. 定义磁盘块结构体,包括块号、状态(空闲或已占用)、指向下一个空闲块的指针等信息。 ``` typedef struct block { int block_no; // 块号 int status; // 状态,0代表空闲,1代表已占用 struct block *next_free; // 指向下一个空闲块的指针 } Block; ``` 2. 定义分组结构体,包括分组号、块数、成组链表头指针等信息。 ``` typedef struct group { int group_no; // 分组号 int num_blocks; // 块数 Block *free_list; // 空闲块链表头指针 } Group; ``` 3. 根据用户输入的盘块大小、文件区磁盘块总数和每组的块数,计算出磁盘的盘块总数和分组数。 ``` int block_size; // 盘块大小 int total_blocks; // 文件区磁盘块总数 int group_size; // 每组的块数 int num_groups; // 分组数 // 用户输入盘块大小、文件区磁盘块总数和每组的块数 printf("请输入盘块大小:"); scanf("%d", &block_size); printf("请输入文件区磁盘块总数:"); scanf("%d", &total_blocks); printf("请输入每组的块数:"); scanf("%d", &group_size); // 计算盘块总数和分组数 num_groups = total_blocks / group_size; if (total_blocks % group_size != 0) { num_groups++; } ``` 4. 初始化磁盘的成组链。对于每个分组,我们需要维护一个成组链表来记录空闲盘块的位置。初始状态下,所有盘块都是空闲的,所以每个成组链表的头结点都指向第一个盘块。同时,我们还需要记录每个盘块的状态,包括空闲或已占用。 ``` // 创建磁盘块数组 Block *disk = (Block *)malloc(total_blocks * sizeof(Block)); // 初始化磁盘块数组 for (int i = 0; i < total_blocks; i++) { disk[i].block_no = i; disk[i].status = 0; disk[i].next_free = NULL; } // 初始化分组 Group *groups = (Group *)malloc(num_groups * sizeof(Group)); for (int i = 0; i < num_groups; i++) { groups[i].group_no = i; groups[i].num_blocks = group_size; groups[i].free_list = &disk[i * group_size]; // 初始化成组链表 Block *p = groups[i].free_list; for (int j = 1; j < group_size; j++) { p->next_free = &disk[i * group_size + j]; p = p->next_free; } } ``` 5. 查询成组链中空闲盘块总数和盘块分组情况可以通过遍历每个成组链表来实现。对于每个成组链表,我们可以统计其中空闲盘块的数量,然后累加到总的空闲盘块数中。同时,我们还可以记录每个分组的盘块分配情况,以便后续查询。 ``` int free_blocks = 0; // 空闲盘块总数 // 查询每个分组的成组链表 for (int i = 0; i < num_groups; i++) { Block *p = groups[i].free_list; int free_blocks_in_group = 0; // 当前分组中的空闲盘块数 while (p != NULL) { free_blocks_in_group++; p = p->next_free; } printf("分组%d中有%d个空闲盘块\n", i, free_blocks_in_group); free_blocks += free_blocks_in_group; } printf("磁盘中一共有%d个空闲盘块\n", free_blocks); ``` 6. 盘块的分配或回收操作都需要涉及到成组链表的修改。当需要分配盘块时,我们可以从成组链表头部取出一个空闲盘块,并将其分配给文件。如果成组链表为空,则需要从相邻的分组中借用空闲盘块。如果所有相邻的分组都没有空闲盘块,则无法分配盘块,文件写入将失败。当文件被删除时,其占用的盘块需要被标记为空闲状态,并加入到对应分组的成组链表中。如果相邻的空闲盘块也处于空闲状态,则需要将它们合并成一个更大的空闲区域,并更新成组链表。 ``` // 分配盘块 Block *allocate_block() { for (int i = 0; i < num_groups; i++) { if (groups[i].free_list != NULL) { Block *p = groups[i].free_list; groups[i].free_list = p->next_free; p->status = 1; p->next_free = NULL; return p; } } return NULL; } // 回收盘块 void free_block(Block *block) { block->status = 0; int group_no = block->block_no / group_size; Block *p = groups[group_no].free_list; // 如果成组链为空,则将该盘块插入成组链表头部 if (p == NULL) { groups[group_no].free_list = block; block->next_free = NULL; return; } // 如果插入成组链表头部,则需要更新成组链表头指针 if (p->block_no > block->block_no) { groups[group_no].free_list = block; block->next_free = p; return; } // 在成组链表中查找插入位置 while (p->next_free != NULL && p->next_free->block_no < block->block_no) { p = p->next_free; } // 如果相邻的空闲盘块也处于空闲状态,则需要将它们合并成一个更大的空闲区域 if (p->next_free != NULL && p->next_free->block_no == block->block_no + 1) { Block *q = p->next_free; block->next_free = q->next_free; p->next_free = block; free(q); } else { block->next_free = p->next_free; p->next_free = block; } } ``` 以上就是使用C语言实现模拟Unix系统磁盘成组链的基本流程。需要注意的是,上述代码仅为示例,实际应用中还需根据具体情况进行优化和完善。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值