forked from cuncinc/FileManageSystem
-
Notifications
You must be signed in to change notification settings - Fork 0
/
NodeOpe.h
75 lines (54 loc) · 1.54 KB
/
NodeOpe.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#ifndef NODEOPE_H
#define NODEOPE_H
#include "NodeInfo.h"
#include "State.h"
/*
* 作用:返回文件(夹)名,从最后一个'\'开始到末尾
* 用法:参数path是文件的绝对路径,文件不存在返回NULL
*/
char * get_name(char * path);
/*
* 返回文件的拓展名,没有拓展名就返回NULL
*/
char * get_extension(char *path);
/*
* 作用:返回文件的大小,单位为Byte(字节)
* 用法:参数str是文件的路径,文件不存在返回-1
*/
long get_file_size(char *str);
/*
* 使用方式:传入一个文件的绝对路径path,返回这个文件的FileInfo节点。注意使用前要判断是否为NULL
* 实现要求:
* 1.先判断path是否为文件夹或不存在,是的话直接返回NULL
* 2.可调用其他已经写好的函数,节点的所有信息都要获取
*/
FileInfo * create_info_node(char *path);
boolean is_file_node(FileNode *node); //如果节点寸的是文件则返回true,否则返回false
boolean is_folder_node(FileNode *node); //是文件夹则返回true,否则返回false
boolean file_exsists(char *path); //若path不存在或者是文件夹,返回false
boolean folder_exsists(char *path); //若path不存在或是文件,返回false
/*
* 作用:在spacing个宽度下输出name,超过spacing的字符回被截断
*/
void print_name(char *name, int spacing);
/*
* 作用:释放一颗树的内存
* 调用须知:调用这个函数后,要把FilesBiTree置NULL
*/
void free_tree(FilesBiTree tree);
/*
* 作用:前序遍历输出文件二叉树节点的name
*/
void pre_order_in_name(FilesBiTree root);
void pre_order_in_path(FilesBiTree root);
/*
// 这个函数好像没什么用
* 返回文件所在的路径
* 注意要用动态内存
*/
char * get_dir(char * path);
/*
* 描述:传入Byte大小,获取合适单位的大小
*/
char *get_size_string(long size);
#endif