标题：File
词解
vt.提出（离婚诉讼或其他讼案）；把……归档；用锉锉；发稿，寄给报社
vi.发送（报道给报社）；排成一行行走；提出申请
n.文件夹；卷宗；纵列[1]
译义
名词n. [C]
1．文件夹，公文箱
2．订存的文件(或卡片等)
3．档案，案卷，卷宗[(+on)]
He read all the files on the case. 
他阅读了有关这个案件的全部卷宗。
4．纵列
A file of passengers was coming down the steps. 
旅客鱼贯走下阶梯。
及物动词vt. 
1．把...归档[(+away)]
She filed all her letters carefully. 
她把她所有的信件仔细归档。
2．提出(申请等);提起(诉讼等)
She filed a suit against the college for sex discrimination. 
她对那所大学提出性别歧视的诉讼。
3．(记者)用电话，电报发送(稿子)
4．在二战中一名英国女间谍误将fire听成了file,结果将每次发送的情报整理归档，最后被德国盖世太保逮捕，搜获了大量情报，这直接导致她被判处死刑。
不及物动词vi. 
1．排成纵队行进[Q]
They filed past the grave of the national hero. 
他们排成纵队走过那位民族英雄的坟墓。
2．提出申请;提起诉讼[(+for)]
She decided to file for divorce. 
她决意起诉要求离婚。
应用
ITIT中的File
英文：File Protocol 
中文释义：本地文件传输协议
注解：File协议主要用于访问本地计算机中的文件，就如同在Windows资源管理器中打开文件一样。
IT中的应 用：要使用File协议，基本的格式如下：file:///文件路径，比如要打开F盘flash文件夹中的1.swf文件，那么可以在资源管理器或IE地址栏中键入：file:///f:/flash/1.swf并回车。
另：file也表示文件。
文件(file)的常见属性如下：hide(隐藏) system(系统) read(只读) write(可写) Archive（存档）
其中，显示隐藏文件的方法如下：　　第一种方法：最为常用的是利用文件夹选项来显示隐藏文件夹或文件；　　具体操作步聚如下　　1、打开我的电脑，进入被隐藏的文件或文件夹目录，比如说D 盘；　　选择"工具"菜单下面的“文件夹选项”　　2、在弹出的对话框中，选择“查看”选项卡，并滑动滑条，找到“隐藏文件和文件夹”并选中下面的“显示所有文件和文件夹”；　　3、点击应用，如果有必要的话，再选择左上角的“应用到所有文件夹”，这样的话，所以目录中的隐藏文件或文件夹就已经显示出来了。　　提示：　　在这里，站长建议大家将隐藏受保护的操作系统文件（推荐）项取消掉，因为，有些病毒会自加s属性，如果此项为默认，那么就看不到病毒文件了。
　　显示隐藏文件的方法一(3张)第二种方法：利用命令显示隐藏文件或文件夹，备，此方法需要读者朋友有一定的cmd基础命令知识。下面具体进行介绍。　　1、我们先去新建一个文件夹，并命名为“测试隐藏文件夹显示方法” 示例为在E盘，如下图，并将此文件夹属性设置为“隐藏”，点击应用：　　应用以后，我们可以看到，我的E盘中有隐藏对象，如下图，刷新以后，刚才建立的文件夹不在了，（实际是被隐藏了）　　2、点击"开始"菜单--"运行"--"cmd"并回车，打开cmd命令窗口，如下图：　　我们输入以下命令 e: 然后回车，进入e盘根目录如下图：　　再输入命令:attrib -h 测试隐藏文件夹显示方法 并回车，如下图：　　再输入dir列出子项命令，结果如下：　　怎么样，是不是已经可以看到此文件夹了呢？再回到桌面环境看看吧。　　隐藏的文件显示出来了![2]
显示隐藏文件的方法二(6张)LINUXLINUX 命令中file 命令
用途
确定文件类型。
语法：
对文件类型分类
file [ -m MagicFile] [ -d ] [ -h ] [ -i ] [ -M File ] [ -f FileList] [File...]
检查 Magic 文件的格式错误
file -c [ -m MagicFile]
描述
file 命令读取用 File 参数或者 FileList 变量指定的文件，在每个文件上执行一系列测试，然后将它们按照类型分类。然后此命令将文件类型写入标准输出。文件可以是常规文件、目录、FIFO（指定的管道）、块特殊文件、字符特别文件、符号链接或者套接字类型。
* 对于长度为零的常规文件，将识别为空文件。
* 对于符号链接文件，缺省情况下此链接后跟符号链接引用的文件。
如果文件是 ASCII 码的格式，则 file 命令将检查前 1024 个字节然后确定文件类型。如果文件不是 ASCII 格式，则 file 命令将尝试区分二进制数据文件和包含扩展字符的文本文件。
如果 File 参数指定了可执行程序或者对象模块文件且版本号大于 0则 file 命令将显示版本戳记。ld 命令说明了 a.out 文件的使用。
file 命令使用 /etc/magic 来标识包含某种 magic 数字的文件；即，任何包含可以表示类型的数字或字符串常量的文件。
如果文件不存在，无法读取或者文件状态无法确定，那么文件将不看作会影响退出状态的错误。输出表明文件已被处理，但是类型仍无法确定。
当使用了 -i 标志时，应使用以下格式标识每个 file 指定的操作数：
"%s: %s\n",file,type
除非在 POSIX 语言环境，否则不指定 type 的值，如果 file 指定为下表中列出的类型之一，type 应包含（但不限于）对应字符串。在字符串中显示的每个空格应是一个空格。
表 1. File 实用程序输出字符串 如果 file 是： type 应包含字符串：
目录 目录
FIFO fifo
套接字 套接字
块特殊文件 块特殊文件
字符特别文件 字符特别文件
可执行文件（二进制） 可执行文件
空常规文件 空
符号链接 符号链接到
ar 归档库 压缩文档
扩展的 cpio 格式 cpio 压缩文档
扩展的 tar 格式 tar 压缩文档
Shell 脚本命令文本
C 语言源 C 程序文本
FORTRAN 源 fortran 程序文本
如果 file 标识为符号链接，则应使用以下备用输出格式：
"%s: %s %s\n",file,type,contents of link"
如果 file 操作数指定的文件不存在或不可读，则字符串 cannot open 应包含为 type 字段的一部分，但这不应当作影响退出状态的错误。如果 file 操作数指定的文件的类型不能确定，则字符串 data 应包含为 type 字段的一部分，但这不应当作影响退出状态的错误。
标志
-c 检查指定的 magic 文件（缺省情况下，/etc/magic 文件）有无格式错误。此验证一般不进行。在此标志下文件输入不执行。
-d 将任何缺省系统测试应用到文件。
-f FileList 读取指定的文件列表。文件必需在每行列出一个文件，不包含开开头和拖尾空格。
-h 当遇到符号链接时，将文件标识为符号链接。如果未指定 -h 标志且 file 是指向不存在文件的符号链接，file 应将文件标识为符号链接，就好像指定了 -h 标志。
-i 如果文件不是常规文件，则不尝试进一步对文件类型进行分类，但如描述中指定的那样标识文件。
-m MagicFile 指定 magic 文件的文件名（缺省情况下，/etc/magic）。
-M File 指定包含应应用于文件以对其分类的测试的文件的名称。不应应用缺省系统测试。
退出状态
此命令返回下列出口值：
0 成功结束。
>0 发生错误。
示例
1． 要显示文件中包含的信息类型，请输入：
file myfile
这将显示文件 myfile的类型（例如目录，数据，ASCII 文本，C 程序源，压缩文档）。
2． 要显示在文件名列表中指定的每个文件的类型，请输入：
file -f filenames
这将显示在 filenames 列表中指定的每个文件的类型。每个文件必须单独出现在一行上。
注：
要从 file 命令获取定制的信息，请和 -m 标志一起使用独立的 magic 文件。不建议编辑只读的 /etc/magic 文件。
文件
/usr/bin/file 包含 file 命令。
/etc/magic 包含文件类型数据库。(或者是/usr/share/magic)
即使出现新的文件格式，只要知道文件原有签名，在magi
c文件里进行追加就可以识别这个文件JavaJava中的File
引入java.io.File包
File构造方法[3]：　　File(File parent, String child) 根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例。　　File(String pathname) 通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例[3]。　　File(String parent, String child) 根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例。
File常用方法[3]：　　canExecute() 测试应用程序是否可以执行此抽象路径名表示的文件。　　canRead() 测试应用程序是否可以读取此抽象路径名表示的文件。　　canWrite() 测试应用程序是否可以修改此抽象路径名表示的文件。　　compareTo(File pathname) 按字母顺序比较两个抽象路径名。　　createNewFile() 当且仅当不存在具有此抽象路径名指定名称的文件时，不可分地创建一个新的空文件[3]。　　delete() 删除此抽象路径名表示的文件或目录。 　　deleteOnExit() 在虚拟机终止时，请求删除此抽象路径名表示的文件或目录。 　　equals(Object obj) 测试此抽象路径名与给定对象是否相等。 　　exists() 测试此抽象路径名表示的文件或目录是否存在。 　　getAbsoluteFile() 返回此抽象路径名的绝对路径名形式。 　　getAbsolutePath() 返回此抽象路径名的绝对路径名字符串。 　　getCanonicalFile() 返回此抽象路径名的规范形式。 　　getCanonicalPath() 返回此抽象路径名的规范路径名字符串。 　　getFreeSpace() 返回此抽象路径名指定的分区中未分配的字节数[3]。 　　getName() 返回由此抽象路径名表示的文件或目录的名称。 　　getParent() 返回此抽象路径名父目录的路径名字符串；如果此路径名没有指定父目录，则返回 null。 　　getParentFile() 返回此抽象路径名父目录的抽象路径名；如果此路径名没有指定父目录，则返回 null。 　　getPath() 将此抽象路径名转换为一个路径名字符串[3]，更多关于File的使用帮助可以参考引用文章。　　C#C#中FILE
一、创建指定路径的文件
创建文件语法重载原型为：File.Create(Stringfilepath);
我们要注意：在程序中使用File类，必须使用using语句引入System命令空间IO
二、复制文件
复制文件语法重载原型为：File.Copy (String,String,Boolean);
第三个参数如果为true，表示复制时如果目标文件已经存在，就替换原来的文件。如果是false，则不替换。如果不写，默认替换原文件。
三、移动文件
移动文件语法重载原型为： File.Move(String,String);
注意：Move方法没有采用3个参数的重载，如果文件存在，则出现异常。
四、设置文件的属性
File.SetAttributes(filepath,FileAttributes.Archive);//设置文件的属性
获取或者修改文件的属性，都要用到FileAttributes枚举，其枚举值如下：
Archive:文件是存档的。
Hidden:文件是隐藏的。
ReadOnly:文件是只读的。
Normal:文件是正常的。
五，检测文件是否存在
移动文件语法重载原型为：File.Exists(string)C++C++中的FILE
需要加入stdio来使用FILE。　　
格式：FILE *name = fopen(filename,type);
filename是文件名
type是指示文件读取方式的字符串：
"r" = read "w" = write "rw" = read&write
定义*name后，便可以使用fprintf(*FILE,string,var1,var2,..)来快速读入读出文件了。
利用FILE* 和fprintf的文件I/O速度是使用fstream文件流的256倍。
C语言　　
C语言中FILE
VC中　　
在"stdio.h"中有如下定义
struct _iobuf {
char *_ptr; //文件输入的下一个位置
int _cnt; //当前缓冲区的相对位置
char *_base; //指基础位置(即是文件的其始位置) 
int _flag; //文件标志
int _file; //文件的有效性验证
int _charbuf; //检查缓冲区状况,如果无缓冲区则不读取
int _bufsiz; //文件的大小
char *_tmpfname; //临时文件名
};
typedef struct _iobuf FILE;LinuxLinux
中FILE　　
struct file {　　
/* fu_list becomes invalid after file_free is called and queued via fu_rcuhead for RCU freeing */
union {
struct list_headfu_list;
struct rcu_head fu_rcuhead;
} f_u;
struct pathf_path;
#define f_dentryf_path.dentry
#define f_vfsmntf_path.mnt
const struct file_operations*f_op;
spinlock_tf_lock; /* f_ep_links, f_flags, no IRQ */
atomic_long_tf_count;
unsigned int f_flags;
fmode_tf_mode;
loff_tf_pos;
struct fown_structf_owner;
const struct cred*f_cred;
struct file_ra_statef_ra;
u64f_version;
#ifdef CONFIG_SECURITY
void*f_security;
#endif
/* needed for tty driver, and maybe others */
void*private_data;
#ifdef CONFIG_EPOLL
/* Used by fs/eventpoll.c to link all the hooks to this file */
struct list_headf_ep_links;
#endif /* #ifdef CONFIG_EPOLL */
struct address_space*f_mapping;
#ifdef CONFIG_DEBUG_WRITECOUNT
unsigned long f_mnt_write_state;
#endif
};