第一篇:C++ builder 的文件读写操作总结(模版)
C++ builder 的文件读写操作总结
在编程的过程中,文件的操作是一个经常用到的问题,在C++Builder中,可以使用多种方法对文件操作,下面我就按以下几个部分对此作详细介绍,就是:
1、基于C的文件操作;
2、基于C++的文件操作;
3、基于WINAPI的文件操作;
4、基于BCB库的文件操作;
5、特殊文件的操作。
壹、基于C的文件操作
在ANSI C中,对文件的操作分为两种方式,即流式文件操作和I/O文件操作,下面就分别介绍之。
一、流式文件操作
这种方式的文件操作有一个重要的结构FILE,FILE在stdio.h中定义如下:
typedef struct { int level;/* fill/empty level of buffer */ unsigned flags;/* File status flags */ char fd;/* File descriptor */ unsigned char hold;/* Ungetc char if no buffer */ int bsize;/* Buffer size */ unsigned char _FAR *buffer;/* Data transfer buffer */ unsigned char _FAR *curp;/* Current active pointer */ unsigned istemp;/* Temporary file indicator */ short token;/* Used for validity checking */ } FILE;/* This is the FILE object */
FILE这个结构包含了文件操作的基本属性,对文件的操作都要通过这个结构的指针来进行,此种文件操作常用的函数见下表函数功能
fopen()打开流
fclose()关闭流
fputc()写一个字符到流中
fgetc()从流中读一个字符
fseek()在流中定位到指定的字符
fputs()写字符串到流
fgets()从流中读一行或指定个字符
fprintf()按格式输出到流
fscanf()从流中按格式读取
feof()到达文件尾时返回真值
ferror()发生错误时返回其值
rewind()复位文件定位器到文件开始处
remove()删除文件 fread()从流中读指定个数的字符
fwrite()向流中写指定个数的字符
tmpfile()生成一个临时文件流
tmpnam()生成一个唯一的文件名
下面就介绍一下这些函数
1.fopen()
fopen的原型是:FILE *fopen(const char *filename,const char *mode),fopen实现三个功能
为使用而打开一个流
把一个文件和此流相连接
给此流返回一个FILR指针
参数filename指向要打开的文件名,mode表示打开状态的字符串,其取值如下表
字符串含义
“r” 以只读方式打开文件
“w” 以只写方式打开文件
“a” 以追加方式打开文件
“r+” 以读/写方式打开文件,如无文件出错
“w+” 以读/写方式打开文件,如无文件生成新文件
一个文件可以以文本模式或二进制模式打开,这两种的区别是:在文本模式中回车被当成一个字符'n',而二进制模式认为它是两个字符0x0D,0x0A;如果在文件中读到0x1B,文本模式会认为这是文件结束符,也就是二进制模型不会对文件进行处理,而文本方式会按一定的方式对数据作相应的转换。
系统默认的是以文本模式打开,可以修改全部变量_fmode的值来修改这个设置,例如_fmode=O_TEXT;就设置默认打开方式为文本模式;而_fmode=O_BINARY;则设置默认打开方式是二进制模式。
我们也可以在模式字符串中指定打开的模式,如“rb”表示以二进制模式打开只读文件,“w+t”或“wt+”表示以文本模式打开读/写文件。
此函数返回一个FILE指针,所以申明一个FILE指针后不用初始化,而是用fopen()来返回一个指针并与一个特定的文件相连,如果成败,返回NULL。
例:
FILE *fp;
if(fp=fopen(“123.456”,“wb”))
puts(“打开文件成功”);
else
puts(“打开文件成败”);
2.fclose()
fclose()的功能就是关闭用fopen()打开的文件,其原型是:int fclose(FILE *fp);如果成功,返回0,失败返回EOF。
在程序结束时一定要记得关闭打开的文件,不然可能会造成数据丢失的情况,我以前就经常犯这样的毛病。
例:fclose(fp);3.fputc()
向流写一个字符,原型是int fputc(int c, FILE *stream);成功返回这个字符,失败返回EOF。
例:fputc('X',fp);
4.fgetc()
从流中读一个字符,原型是int fputc(FILE *stream);成功返回这个字符,失败返回EOF。
例:char ch1=fgetc(fp);
5.fseek()
此函数一般用于二进制模式打开的文件中,功能是定位到流中指定的位置,原型是int fseek(FILE *stream, long offset, int whence);如果成功返回0,参数offset是移动的字符数,whence是移动的基准,取值是
符号常量值基准位置
SEEK_SET 0 文件开头
SEEK_CUR 1 当前读写的位置
SEEK_END 2 文件尾部
例:fseek(fp,1234L,SEEK_CUR);//把读写位置从当前位置向后移动1234字节(L后缀表示长整数)
fseek(fp,0L,2);//把读写位置移动到文件尾
6.fputs()
写一个字符串到流中,原型int fputs(const char *s, FILE *stream);
例:fputs(“I Love You”,fp);
7.fgets()
从流中读一行或指定个字符,原型是char *fgets(char *s, int n, FILE *stream);从流中读取n-1个字符,除非读完一行,参数s是来接收字符串,如果成功则返回s的指针,否则返回NULL。
例:如果一个文件的当前位置的文本如下
Love ,I Have
But ……..如果用
fgets(str1,4,file1);
则执行后str1=“Lov”,读取了4-1=3个字符,而如果用
fgets(str1,23,file1);
则执行str=“Love ,I Have”,读取了一行(不包括行尾的'n')。
8.fprintf()
按格式输入到流,其原型是int fprintf(FILE *stream, const char *format[, argument, „]);其用法和printf()相同,不过不是写到控制台,而是写到流罢了
例:fprintf(fp,“%2d%s”,4,“Hahaha”);
9.fscanf()
从流中按格式读取,其原型是int fscanf(FILE *stream, const char *format[, address, „]);其用法和scanf()相同,不过不是从控制台读取,而是从流读取罢了。
例:fscanf(fp,“%d%d” ,&x,&y);
10.feof()
检测是否已到文件尾,是返回真,否则返回0,其原型是int feof(FILE *stream);
例:if(feof(fp))printf(“已到文件尾”);
11.ferror()
原型是int ferror(FILE *stream);返回流最近的错误代码,可用clearerr()来清除它,clearerr()的原型是void clearerr(FILE *stream);
例:printf(“%d”,ferror(fp));
12.rewind()
把当前的读写位置回到文件开始,原型是void rewind(FILE *stream);其实本函数相当于fseek(fp,0L,SEEK_SET);
例:rewind(fp);
12.remove()
删除文件,原型是int remove(const char *filename);参数就是要删除的文件名,成功返回0。
例:remove(“c:io.sys”);
13.fread()
从流中读指定个数的字符,原型是size_t fread(void *ptr, size_t size, size_t n, FILE *stream);参数ptr是保存读取的数据,void*的指针可用任何类型的指针来替换,如char*、int *等等来替换;size是每块的字节数;n是读取的块数,如果成功,返回实际读取的块数(不是字节数),本函数一般用于二进制模式打开的文件中。
例:
char x[4230];
FILE *file1=fopen(“c:msdos.sys”,“r”);
fread(x,200,12 ,file1);//共读取200*12=2400个字节
14.fwrite()
与fread对应,向流中写指定的数据,原型是size_t fwrite(const void *ptr, size_t size, size_t n, FILE *stream);参数ptr是要写入的数据指针,void*的指针可用任何类型的指针来替换,如char*、int *等等来替换;size是每块的字节数;n是要写的块数,如果成功,返回实际写入的块数(不是字节数),本函数一般用于二进制模式打开的文件中。
例:
char x[]=“I Love You”;
fwire(x, 6,12,fp);//写入6*12=72字节
将把“I Love”写到流fp中12次,共72字节
15.tmpfile()
其原型是FILE *tmpfile(void);生成一个临时文件,以“w+b”的模式打开,并返回这个临时流的指针,如果失败返回NULL。在程序结束时,这个文件会被自动删除。
例:FILE *fp=tmpfile();
16.tmpnam();
其原型为char *tmpnam(char *s);生成一个唯一的文件名,其实tmpfile()就调用了此函数,参数s用来保存得到的文件名,并返回这个指针,如果失败,返回NULL。例:tmpnam(str1);
二、直接I/O文件操作
这是C提供的另一种文件操作,它是通过直接存/取文件来完成对文件的处理,而上篇所说流式文件操作是通过缓冲区来进行;流式文件操作是围绕一个FILE指针来进行,而此类文件操作是围绕一个文件的“句柄”来进行,什么是句柄呢?它是一个整数,是系统用来标识一个文件(在WINDOWS中,句柄的概念扩展到所有设备资源的标识)的唯一的记号。此类文件操作常用的函数如下表,这些函数及其所用的一些符号在io.h和fcntl.h中定义,在使用时要加入相应的头文件。
函数说明
open()打开一个文件并返回它的句柄
close()关闭一个句柄
lseek()定位到文件的指定位置
read()块读文件
write()块写文件
eof()测试文件是否结束
filelength()取得文件长度
rename()重命名文件
chsize()改变文件长度
下面就对这些函数一一说明:
1.open()
打开一个文件并返回它的句柄,如果失败,将返回一个小于0的值,原型是int open(const char *path, int access [, unsigned mode]);参数path是要打开的文件名,access是打开的模式,mode是可选项。表示文件的属性,主要用于UNIX系统中,在DOS/WINDOWS这个参数没有意义。其中文件的打开模式如下表。
符号含义符号含义符号含义
O_RDONLY 只读方式 O_WRONLY 只写方式 O_RDWR 读/写方式
O_NDELAY 用于UNIX系统 O_APPEND 追加方式 O_CREAT 如果文件不存在就创建
O_TRUNC 把文件长度截为0 O_EXCL 和O_CREAT连用,如果文件存在返回错误 O_BINARY 二进制方式
O_TEXT 文本方式
对于多个要求,可以用“|”运算符来连接,如O_APPEND|O_TEXT表示以文本模式和追加方式打开文件。
例:int handle=open(“c:msdos.sys”,O_BINARY|O_CREAT|O_WRITE)
2.close()
关闭一个句柄,原型是int close(int handle);如果成功返回0
例:close(handle)
3.lseek()
定位到指定的位置,原型是:long lseek(int handle, long offset, int fromwhere);参数offset是移动的量,fromwhere是移动的基准位置,取值和前面讲的fseek()一样,SEEK_SET:文件首部;SEEK_CUR:文件当前位置;SEEK_END:文件尾。此函数返回执行后文件新的存取位置。
例:
lseek(handle,-1234L,SEEK_CUR);//把存取位置从当前位置向前移动1234个字节。
x=lseek(hnd1,0L,SEEK_END);//把存取位置移动到文件尾,x=文件尾的位置即文件长度
4.read()
从文件读取一块,原型是int read(int handle, void *buf, unsigned len);参数buf保存读出的数据,len是读取的字节。函数返回实际读出的字节。
例:char x[200];read(hnd1,x,200);
5.write()
写一块数据到文件中,原型是int write(int handle, void *buf, unsigned len);参数的含义同read(),返回实际写入的字节。
例:char x[]=“I Love You”;write(handle,x,strlen(x));
7.eof()
类似feof(),测试文件是否结束,是返回1,否则返回0;原型是:int eof(int handle);
例:while(!eof(handle1)){„„};
8.filelength()
返回文件长度,原型是long filelength(int handle);相当于lseek(handle,0L,SEEK_END)
例:long x=filelength(handle);
9.rename()
重命名文件,原型是int rename(const char *oldname, const char *newname);参数oldname是旧文件名,newname是新文件名。成功返回0
例:rename(“c:config.sys”,“c:config.w40”);
10.chsize();
改变文件长度,原型是int chsize(int handle, long size);参数size表示文件新的长度,成功返回0,否则返回-1,如果指定的长度小于文件长度,则文件被截短;如果指定的长度大于文件长度,则在文件后面补' '。
例:chsize(handle,0x12345);
-----------------
⑵DeleteFile()
原型:extern PACKAGE bool __fastcall DeleteFile(const System::AnsiString FileName);
功能:删除文件,如果成功返回true,否则返回false
参数:FileName:要删除的文件名
例:if(OpenDialog1->Execute())DeleteFile(OpenDialog1->FileName);
⑶DirectoryExists()
原型:extern PACKAGE bool __fastcall DirectoryExists(const System:: AnsiString Name);
功能:检测目录是否存在,如果存在返回true,否则返回false
参数:Name:要检测的目录名
例:if(!DirectoryExists(“ASM”))CreateDir(“ASM”);//如果ASM这个目录不存在则创建之
⑷DiskFree()
原型:extern PACKAGE __int64 __fastcall DiskFree(Byte Drive);
功能:检测磁盘剩余空间,返回值以字节为单位,如果指定的磁盘无效,返回-1
参数:Drive:磁盘的代号,0表示当前盘, 1=A,2=B,3=C 以此类推
例:ShowMessage(DiskFree(0));//显示当前盘的剩余空间
⑸DiskSize()
原型:extern PACKAGE __int64 __fastcall DiskSize(Byte Drive);
功能:检测磁盘容量,返回值以字节为单位,如果指定的磁盘无效,返回-1
参数:Drive:磁盘的代号,0表示当前盘, 1=A,2=B,3=C 以此类推
例:ShowMessage(DiskFree(0));//显示当前盘的容量
⑹FileExists()
原型:extern PACKAGE bool __fastcall FileExists(const AnsiString FileName);
功能:检测文件是否存在,如果存在返回true,否则返回false
参数:FileName:要检测的文件名
例:if(FileExists(“AAA.ASM”))DeleteFile(“AAA.ASM”);
⑺FileGetAttr()
原型:extern PACKAGE int __fastcall FileGetAttr(const AnsiString FileName);
功能:取得文件属性,如果出错返回-1
返回值如下表,如果返回$00000006表示是一个具有隐含和系统属性的文件(4+2)
常量值含义
faReadOnly $00000001 只读文件
faHidden $00000002 隐含文件
faSysFile $00000004 系统文件
faVolumeID $00000008 卷标
faDirectory $00000010 目录
faArchive $00000020 归档文件
例:if(FileGetAttr(“LLL.TXT”)&0x2)ShowMessage(“这是一个有隐含属性的文件”);
与此对应的有FileSetAttr(),请自已查阅帮助系统
⑻FileGetDate()
原型:extern PACKAGE int __fastcall FileGetDate(int Handle);
功能:返回文件的建立时间到1970-1-1日0时的秒数
参数:Handle:用FileOpen()打开的文件句柄。
例:
int i=FileOpen(“C:autoexec.bat”,fmOpenRead);
ShowMessage(FileGetDate(i));
FileClose(i);与此对应的有FileSetDate(),请自已查阅帮助系统
⑼GetCurrentDir()
原型:extern PACKAGE AnsiString __fastcall GetCurrentDir();
功能:取得当前的目录名
例:ShowMessage(GetCurrentDir());
⑽RemoveDir()
原型:extern PACKAGE bool __fastcall RemoveDir(const AnsiString Dir);
功能:删除目录,如果成功返回true,否则返回false
参数:Dir:要删除的目录名
例:if(DiectoryExists(“ASM”))RemoveDir(“ASM”);
⑾SetCurrentDir()
原型:extern PACKAGE bool __fastcall SetCurrentDir(const AnsiString Dir);
功能:设置当前目录,如果成功返回true,否则返回false
参数:Dir:要切换到的目录名
例:SetCurrentDir(“C:WINDOWS”);
------------------
3、文件I/O函数
这类函数完成对文件的读写相关的操作,这种类型的操作和C的基于I/O文件操作类似,下表列出这类操作常用的函数及其功能。
FileOpen()打开文件
FileClose()关闭文件
FileRead()读文件
FileSeek()文件定位
FileWrite()写文件
FileCreate()创建文件
下面就对这些函数作详细介绍。
⑴FileOpen()
原型:extern PACKAGE int __fastcall FileOpen(const AnsiString FileName, int Mode);
功能:打开文件,如果成功返回其句柄,否则返回-1
参数:FileName:要打开的文件名;Mode:打开的方式,取值如下表,可用“或”(“|”)运算符连接。常量值说明
------------------------------fmOpenRead 0 以只读属性打开 fmOpenWrite 1 以只写属性打开
fmOpenReadWrite 2 以读/写属性打开
fmShareCompat 0 兼容FCB方式(汇编中有相应的DOS功能调用,感兴趣自已查阅相关资料)fmShareExclusive 16 共享方式:以独占方式打开,在关闭以前,别人不能访问 fmShareDenyWrite 32 共享方式:拒绝写访问 fmShareDenyRead 48 共享方式:拒绝读访问
fmShareDenyNone 64 共享方式:无限制,允许读写
例:int i=FileOpen(“C:WINDOWSWin.ini”,fmOpenReadWrite|fmShareExclusive);⑵FileClose()
原型:extern PACKAGE void __fastcall FileClose(int Handle);
功能:关闭打开的句柄。参数:Handle:要关闭的句柄
例:FileClose(i);⑶FileRead()
原型:extern PACKAGE int __fastcall FileRead(int Handle, void *Buffer, int Count);
功能:读文件,返回实际读取的字节数,句柄必须首先由FileOpen或FileCreate创建。
参数:Handle:要读取的句柄;Buffer:存放读取的数据的缓冲区;Count:想读取的字节数
例:char str[400];FileRead(hnd1,str,400);⑷FileSeek()
原型:extern PACKAGE int __fastcall FileSeek(int Handle, int Offset, int Origin);功能:移动文件读取指针,成功返回文件指针的位置,失败返回-1
参数:Handle:相关联的句柄;Offset:移动的量;Orgin:移动的基准,0=文件头,1=当前位置,2=文件尾。
例:ShowMessage(FileSeek(hnd1,0,2));//取得文件的长度
⑸FileWrite()
原型:extern PACKAGE int __fastcall FileWrite(int Handle, const void *Buffer, int Count);
功能:写文件,返回实际写入的字节数,句柄必须首先由FileOpen或FileCreate创建。
参数:Handle:要写入的句柄;Buffer:存放写入数据的缓冲区;Count:想写入的字节数
例:char str[]=“I Love You”;FileWrite(hnd1,str,strlen(str));
⑹FileCreate()
原型:extern PACKAGE int __fastcall FileCreate(const AnsiString FileName);
功能:创建文件。成功返回其句柄,否则返回-1
参数:FileName:要创建的文件名
例:if(!FileExists(“KC.C”))hnd1=FileCreate(“KC.C”);
第二篇:mfc文件操作个人总结
MFC文件操作
一,打开文件对话框
CString szFilters=_T(“txt Files(*.txt)”);
CFileDialog fileDlg(TRUE, _T(“txt”), _T(“*.txt”), OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, szFilters, NULL);
if(fileDlg.DoModal()== IDOK){
CString filestr;
};filestr = fileDlg.GetPathName();//得到打开的文件的全路径+后缀
二,打开文件
CFile::CFile(LPCTSTR lpszFileName, UINT nOpenFlags);//CFile构造
lpszFileName文件名
nOpenFlags打开方式,有:
CFile::modeCreate:以新建方式打开,如果文件不存在,新建;如果文件已存在,把该文件长度置零,即清除文件原有内容。
CFile::modeRead:只读。
CFile::modeWrite:只写。
CFile::modeReadWrite:以读写方式打开文件。
CFile::modeNoTruncate:以追加方式打开,如果文件存在,打开并且不将文件长度置零,如果文件不存在,会抛出异常。一般与CFile::modeCreate一起使用,则文件不存在时,新建一个文件;存在就进行追加操作(其追加是从起始位置进行覆盖式追加的,所以要与定位配合操作)。
例:1,利用CFile的构造函数打开文件
filestr = _T(“C:UserszktwDesktopnew.txt”);//或用一中获得的路径
CFile RWFile(filestr,CFile::modeCreate | CFile::modeReadWrite | CFile::modeNoTruncate);例2:利用CFile的成员函数
CFilemyfile;
Myfile.open(_T(“路径”), CFile::modeCreate | CFile::modeReadWrite | CFile::modeNoTruncate);
三,文件读写操作
读操作
CFile::Read(void* lpBuf, UINT nCount);从lpBuf指向的地址开始读取nCount 个字节,指针也自动下移nCount
写操作
CFile::Write(const void* lpBuf, UINT nCount);向lpBuf指向的内存地址写入nCount 个字节,指针也自动下移nCount
四,定位
CFile::Seek(LONG lOff, UINT nFrom);从指定位nFrom置偏移lOff字节.nFrom有三种方式,如:
CFile::begin从文件开始移动
CFile::current从当前位置移动
CFile::end从文件末位移动,此时lOff为负值.例: CFile::Seek(0, CFile::end);//定位文件尾
五,关闭打开的文件
CFile::Close();//关闭文件,删除对象,再次对文件读写时必须重新定义对象
六,查找文件是否存在(CFileFind的成员函数)
CStringstrFileTitle;
CFileFindfinder;
BOOLbWorking = finder.FindFile(_T(“C:UserszktwDesktopnew.txt”));
if(bWorking)
{
AfxMessageBox(_T(“文件已存在”);
}
else
AfxMessageBox(_T(“文件不存在”));
finder.close();//结束查找请求释放资源,但是再次发出查找请求时不需要重新定义//CFileFind对象如下:
bWorking = finder.FindFile(_T(“C:UserszktwDesktopnew1.txt”));
。。
finder.close();
CFileFind封装了许多非常有用的成员函数 可以百度一下。
七,创建文件夹
CreateDirectory(_T“路径”,NULL);第一个参数值为文件夹名称,第二个参数值为安全属性,一般设置为NULL即可。如果正确创建,返回值为1,如果没有正常创建文件夹,则返回0。
特别的:该函数每次调用时都只能创建一级文件夹,即文件夹中不能再包含子文件夹。当希望创建含有子文件夹的文件夹时,可以先使用该函数创建一级文件夹,然后再使用该函数在一级文件夹下创建子文件夹。
八,删除文件
DeleteFile(_T(“路径”));
九,删除文件夹
RemoveDirectory(_T(“路径”));//文件夹内没有文件时才会删除成功,可以无限查找”.”带.//文件然后都删除掉,再删除文件夹
十,复制文件
CopyFile(_T(路径),_T(路径),true);//true:目标不能已存在。False:目标可以已存在 例:CopyFile(_T(“C:UserszktwDesktopnew.txt”), _T(“d:newnew.txt”), TRUE);
十一,移动文件或文件夹
MoveFile(_T(路径),_T(路径));//同一目录下即是重命名,移动的时候也可以重命名//移动文件夹时只能在同一盘操作
例:MoveFile(_T(“C:UserszktwDesktopnew.txt”), _T(“d:newnew.txt”));//移动文件 MoveFile(_T(“d:abc”), _T(“d:newabc”));//文件夹移动
注:加粗的文件或文件夹不能已存在十二,复制一个文件夹下所有的文件到另一个目录
CFileFind finder;
CString straddr;
CString strname;
BOOL bfind;
bfind = finder.FindFile(_T(“C:UserszktwDesktopabc*.*”));
while(bfind)
{
bfind = finder.FindNextFile();
straddr.Format(_T(“%s”), finder.GetFilePath());
strname.Format(_T(“d:new%s”), finder.GetFileName());
//MoveFile(straddr, strname);//移动
CopyFile(straddr, strname, TRUE);//复制
}
finder.Close();
第三篇:《文件操作》教学设计
《文件操作》教学设计
[教学目的与要求](1)掌握选定一个和多个文件的方法。
(2)学会删除文件的基本操作,初识“回收站”。(3)能够理解移动与复制的区别。(4)掌握移动和复制文件的操作方法。[课时安排] 1课时。
[教学重点与难点](1)重点:选定文件,删除、移动和复制文件命令。
(2)难点:操作的灵活性,鼠标器的单击、右击、“回收站”的作用。[教材分析与教法](1)可以酌情调整为先复制,再删除。
(2)须强调:先选定文件,再执行操作。需要选定多个不连续的文件或文件夹,可以按Ctrl键配合鼠标器操作;如需选定某区域的文件或文件夹,则按Shift键配合鼠标器操作。(3)教师演示移动文件和复制文件的操作,让学生观察移动(或复制)前后目标盘中文件的变化,比较两种操作的不同区别。再通过学生自己操作,进一步加深印象。
(4)重点掌握用“我的电脑”完成文件的删除、移动、复制命令。在理解命令并学会操作的基础上,再介绍用命令按钮、鼠标拖动进行文件操作的方法。有基础的学生,可尝试快捷菜单命令的方法。
(5)教材“练一练”设计在“资源管理器”中用拖动文件的方法完成复制的操作,教学时要注意区分文件夹框和文件列表框。如果拖动较难,可以将拖动改为使用“复制”与“粘贴”命令。(6)“讨论”的内容是本课的小结,请学生讨论、概括、小结。[参考资料](1)删除文件的简便方法,是直接将准备删除的文件拖到“回收站”。
(2)删除硬盘上的文件和删除软盘上的文件,方法基本相同,但一般情况下,删除硬盘文件经过回收站,“回收站”没有清空之前,放入“回收站”的文件并没有真正从硬盘上删除,能够撤消或恢复;按住Shift键、删除硬盘中的文件,不经过回收站直接删除,不能恢复;软盘上的文件被删除时也不送入“回收站”中。“回收站”是删除硬盘文件的暂时存放处。
(3)移动操作:一是“编辑”菜单中的“剪切”命令和“粘贴”命令,这是重点;二是工具栏中“剪切”按钮和“粘贴”按钮;三是右击使用快捷菜单命令;四是用鼠标器直接拖动(同一磁盘内)。(4)文件复制目的,是备份。同名文件可以保存在不同的文件夹下。复制操作与移动操作相似,既可以使用菜单命令,也可以使用命令按钮和鼠标拖动方法。
(5)一般情况下,执行文件操作后,可选择目标盘窗口的“编辑”菜单中的“撤消”命令,取消刚才的操作。[教案正文] [课 题] 第21课 文件操作 [教学目的与要求](1)掌握选定一个和多个文件的方法。
(2)掌握删除、复制和移动文件的操作方法。(3)认识“回收站”作用。
(4)能够理解移动与复制的区别。[课时安排] 1课时。[教学重难点] 重点:选定文件,删除、移动和复制文件和文件夹。难点:利用鼠标器的单击、右击操作。[课前准备](1)教师课前要检查学生机,了解学生在硬盘中保存的文件。可以预先在每个学生机的“我有文档”里建立任意五个文件,在本例中我建立的是“文件1.DOC”“文件2.DOC”“文件3.DOC”“文件4.DOC”“文件5.DOC”三个WORD文档。可以利用多媒体教学软件的广播传送功能统一实现。
(2)上课时,教师指定磁盘以及文件或文件夹,不要让学生随意乱删除文件。特别要提醒学生,不能随意删除文件,以免造成损失甚至影响Windows 98的启动。(3)提前把所有的学生机都打开,以免开机过程浪费课堂教学时间。(4)多媒体教学软件,利用多媒体教学软件的广播功能进行演示教学。(5)在上课之前检查各种软件是否能正常运行。[教学过程]
一、导入
明明从计算机C盘的“My Document”文件夹中找到了他的word文件,他觉得有的word文件他不想要了,想选几个做得较好的word文件转移到D盘中。可是明明不会操作,你们想不想帮助明明呀?既然想帮助明明,首先你自己要学会,然后才能帮助明明。今天我们学习文件的操作。
二、新授
(板书: 文件操作)1.选定文件
师:在C盘的“My Documents”文件夹窗口,“文件1.DOC”“文件2.DOC”“文件3.DOC”这三个文件不想要了,要把它删除。怎么办?
(师边讲解边演示)首先要选中这三个文件,但是鼠标器每次只能选中一个文件,这时按下Ctrl键不放,再单击“文件1.DOC” “文件2.DOC” “文件3.DOC”文件,松开Ctrl键,这时这三个文件都被选定了。(板书:选定文件)师:要选定多个文件,按住Ctrl键不放,再单击文件;对于选定连续排列的文件,可以单击第一个文件,然后按住Shift键不放,再单击最后一个文件,松开Shift键。
这时这些文件就被选中了。如果要撤消选定的文件,只要单击选定文件旁边的空白处。[试一试] 选中C盘“My Documents”文件夹中的“文件1.DOC” “文件2.DOC” “文件3.DOC”文件,再撤消。
2.删除文件
(师边讲解边演示)单击“文件(F)”菜单中的“删除(D)”命令,弹出“确认删除多个文件”对话框,再单击“是(Y)”按钮,这些选定的文件“文件1.DOC” “文件2.DOC” “文件3.DOC”就被删除了。师:被这样删除的文件,被放在了“回收站”中了。(板书:“文件”——“删除”)[读一读] 师:选定要删除的文件后,也可以直接按键盘上的Delete 键,完成删除操作。[试一试](1)双击桌面上“回收站”图标,打开“回收站”窗口,看看“回收站”中有没有从软盘上删除的文件?
师:硬盘中的文件被删除后,放到了“回收站”这个特殊文件夹中。双击桌面上的“回收站”图标,打开“回收站”窗口,就能看到被删除的这些文件了。[讨论] “回收站”的作用是什么?用什么命令撤消删除?又用什么命令彻底将文件删除?删除文件夹的方法与删除文件的方法相同吗?
师:“回收站”的作用是暂存放硬盘中删除的文件,用“还原”命令撤消删除,用“清空回收站”命令彻底删除文件。删除文件夹和文件的方法是一样的。[练习] 打开C盘“My Document”文件夹窗口,选定几个已不需要保存的文件,用鼠标器将它们拖动到“回收站”,再确认删除。
师:删除文件除了用菜单和键盘以外,将文件拖到“回收站”也可以删除文件。如果“清空回收站”,那么文件将被全部删除,没有办法再恢复了。所以同学们在使用计算机时,不要随意乱删文件或文件夹,以免造成文件丢失,甚至影响计算机的启动。3.复制文件
师:明明想把C盘“My Documents”文件夹中的“文件4.DOC”“文件5.DOC”复制到D盘中,怎么办?
(板书:
二、复制文件)(师边讲解边演示)打开C盘“My Documents”文件夹窗口,先选定几个需要复制的文件,“文件4.DOC”“文件5.DOC”文件,然后单击[“编辑(E)”菜单中的“复制(C)”命令或单击工具栏中的“复制”按钮 ]。
(板书:选定文件—“编辑”—“复制”)
(师边讲解边演示)双击“我的电脑”图标,再双击“D:”驱动器图标,再单击“编辑(E)”菜单中的“粘贴(P)”命令或工具栏中的“粘贴”按钮,窗口中将显示复制的几个文件。(板书:—“粘贴”)[试一试](讲解用快捷菜单的方式复制的过程)
(师边讲解边演示)也可用快捷菜单的方式进行刚才的操作:打开C盘“My Documents”文件夹窗口,先选定几个需要复制的文件,“文件4.DOC”“文件5.DOC”文件,然后在其中一个文件上单击右键,在弹出的快捷菜单里移动鼠标到“复制(C)”命令,单击鼠标左键(完成复制过程)
(讲解用快捷菜单的方式粘贴的过程)
(师边讲解边演示)双击“我的电脑”图标,再双击“D:”驱动器图标,再在空白的地方单击鼠标右键,在弹出的快捷菜单里移动鼠标到“粘贴(V)”命令,单击鼠标左键,就会看到我们要粘贴的文件出现在文件夹里。(完成粘贴过程)4.移动文件
(板书:移动文件)(师边讲解边演示)打开C盘“My Documents”文件夹窗口,先选定“文件4.DOC”“文件5.DOC”,然后单击“编辑(E)”菜单中的“剪切(T)”命令或单击工具栏中的“剪切”按钮。(板书:选定文件—“编辑”—“剪切”)
(师边讲解边演示)再打开D盘“明明的文件”文件夹窗口,单击“编辑(E)”菜单中的“粘贴(P)”命令或工具栏中的“粘贴”按钮,窗口中将显示这两个文件。(板书:—“粘贴”)[试一试] 师:单击“查看(V)”菜单中的“刷新(R)”命令,观察有没有“文件4.DOC”“文件5.DOC”文件了? [练习] 师:除了用菜单对文件进行复制和移动外,还可以用鼠标的拖动操作来实现。学生操作。
三、小结
(1)复制文件常用哪几种方法?
师:一是菜单操作;二是工具栏的“复制”“粘贴”按钮;三是快捷键操作;四是鼠标拖动操作。(2)文件的复制和移动有什么区别?
师:复制文件是将文件复制一份或多份,而且该文件的位置不变;移动文件是将文件从一个地方移动到另一个地方,相应的该文件由一个位置移到另一个位置。
四、作业
将C:My document中的“文件1.DOC”“文件2.DOC”“文件3.DOC”复制到桌面上,再将“文件1.DOC”“文件2.DOC”“文件3.DOC”文件移动到D盘中。(本次作业之所以要求把文件复制到桌面上,是想考察学生是否能够清楚桌面也是一个文件夹,也能在桌面上进行在文件夹里的“复制、剪切、粘贴”操作)
第四篇:文件操作通用格式
文件操作三步骤:
打开文件:Open “文件名” for input/Output/append as #文件号
读取或者写入:主要针对顺序文件的命令.关闭文件:close 文件号 写文件的通用格式:
Open “文件名” for Output/append as #文件号
Print/Write#文件号,要写入的内容
Close #1
两个注意事项:
print后面表达式的分号和逗号
Print和Write的区别
读文件的通用格式:
1)打开用于读的文件格式固定:
Open “文件名”forinput as #文件号
2)读的语句分三种情况:
①若读的内容是有固定个数的数值,则读的时候联合使用For循环语句读,通用格式为:
Fori=起始值 to 终止值
Input #文件号,数组变量
nexti
②若读的内容是字符串,则读的时候要联合使用Do循环语句读
i若是按变量读(所谓按变量读,对于顺序文件来说,在文档中碰到逗号或空格则认为一个变量的内容结束),通用格式为:
Do while not eof(文件号)
input #文件号, 变量名
Text1.text=text1.text &变量名 &vbcrlf
Loop
ii若是按行读,通用格式为:
Do while not eof(文件号)
Line input #文件号, 变量名
Text1.text=text1.text &变量名 &vbcrlf(在文本框中按行显示)
Loop
iii若是按固定长度字符读,通用格式为:
Do while not eof(文件号)
变量名=input(取的字符长度, #文件号)
Text1.text=text1.text &变量名
Loop
第五篇:读写结合总结
关于“读与写”的思考
我们的“读与写”活动从开始酝酿到付诸实施已经走过了很长一段历程。在这个过程中,我们摸索,总结,修正,经历一个不断思索,改进的过程。到今天我们的活动已经有声有色的开展起来,而且有了令人慰的成果:首先是我们大家饱含激情的参与保证了活动的顺利实施。再者是大家在参与的过程中,能够开动脑筋,说出肯綮中的的言论供大家欣赏,揣摩,最后共同进步,这实际上是最值得欣慰的。细想来,我们的活动可以概括为为以下的“三个一”,那就是“一种理念,一次尝试,一个平台”。这三者有机的结合在一起,促成了我们整个活动成功有序进行。
一种理念
众所周知,我们的语文教育方式和理念经历了太多的变迁,从开始的模仿苏联的“红领巾模式”到今天的在新课标倡导下的“自主,合作,探究”的模式,可以说是经历了一个不断变更又不断充盈的过程。然而,我们不难发现,无论我们的教材如何变更,我们的方法怎样改变,但是,我们始终不变的就是对“读与写”的研究和探索,因为我们抓住了语文教育教学当中一个本质的东西,那就是“读”是学生学习过程中最基本的输入方式,而“写”又是最基本的输出方式,两者结合起来是反映一个学生语文能力的最为直接而且最为有效的证明,并且我们可以从古人“厚积薄发,读而后现”经典成才之路上找到依据。所以,我们决定把这一活动具体化,系统化。而在我们新课标理念的指引下,我们可以把“读与写”活动的本质概括为:“读写结合教学是以教材文本为载体,从教材文本的内容出发,设计与之相关“写”的训练,使阅读、习作、思维训练三者融为一体,通过以读带写、以写促读的读写训练,学生的思维得到发展,能力得到提升。”只是在我们实际教学过程中,我们常说对于一篇课文我们要走进去,再走出来。不仅要知道文章表达了什么,还要知道文章是怎样表达的。可是究竟怎样走出来,怎样让学生知道文章是如何表达的?具体操作的时候,我们往往觉得没有抓手,缺少具体的操作策略。鉴于此,我们试图充分发掘教材资源,进而探索编写出一套一到六年级读写结合教学的经验材料。而后,就有了我们具体实施活动的指导与实践。
一次尝试
尽管“读与写”活动在人们的倡导中已不再是一个陌生的概念,然而具体实施起来却是一次尝试,所以这一活动从一开始就倾注了大家的心血。从徐老师的倡导,发起,统筹规划,到每一位成员的参与,实施,经历了一个艰辛的过程。在这里做一下简要的叙述:2012年10月份我们召开了全旗“读写结合”教学研讨活动,初步收获了一些好的经验,分享了大家的一些智慧。之后,锦山小学、锦山中心校、十家中心校三所学校还把这一内容确定为研究课题,取得了一定的研究成果。接下来我们聘请的承担编写任务的六位优秀教师,牺牲了整个一个寒假的休息时间,为大家编写了高质量的“读写结合教学环节设计”。然后,新学期伊始,我们开始实施整个的活动计划:首先,我们通过网络搭建了一个交流的平台,让每一个参与者都能够及时看到大家观点。然后是在这个平台上,大家以随机交流的方式或者是发帖,跟帖交流的方式传递思想,求取进步。另外,我们要求交流的时候尽量让问题具体化,精确化,这就避免了一些假话,大话,空话的出现,使我们的交流有题可论,有的放矢。当然,我们并不排斥一些有见地的教育理论,我们可以从中吸取有分量的营养,充盈我们的大脑。在这一过程中,我们有专门的人员对活动的次数和质量进行监督和统计,这样保证了整个活动能够正常而且有序的进行。在这里,尤其值得一提的是,在整个活动计划开始之后大家所表现出来的热情着实令人欣慰。首先是徐老师的率先垂范,给大家以精神支持和专业引导,使大家有信心,不盲目,并且不断受益。另外,大家在参与的过程中往往有真知灼见,这不仅是一个人的收获,更是大家思想升级的动力。再者,在大家不断参与的过程中,团结一致的和谐精神得到进一步验证,是我们这个活动设计伊始所不曾预料的,尤其令人激动。总之,在大家的共同努力下,我们的这次尝试正在有序,有活力的进行着,我们会让它不断发展,不断充实,创造一个经得起考验的奇迹。
一个平台
我们的这一活动能够有效,有序的开展,得益于网络这个平台。新型的科技的事物在我们的生活中不断涌现,使我们惯常的交流方式发生了很大的改变,我们可以用极快的速度传递自己的思想,接收别人的理念,这是效率的见证。从活动设计伊始,我们就关注了qq交流的价值,因为在现实的网络交流中,我们每个人最常用的聊天方式就是这样,所以我们的初衷就在于怎样让闲聊变得有价值,让闲聊也可以提升我们的境界。所以在徐老师的提议下,我们建立了一个专门用于交流的群,这个群有主题上的说明,是专门为语文交流而设计的。而群的内部有着极为细致的划分,群空间里有典型的群论坛,论坛分为一到六年级六个讨论版,这样分属于不同年级段的老师可以很快的找到自己跟帖的位置,说出自己想说的话。另外,大家在发帖的时候既可以原创,又可以跟随,这使得大家的思想也具有了体现的灵活性。这样的方式极大地方便了交流,大家可以不用谋面却可以畅所欲言,其乐融融,其情悠悠。
总之,我们的“读与写”活动在一个理念的支撑下,在一次尝试的锻炼中,很好的借助了网络这个平台,有条不紊的进行着。有人说,我们有着激情如火的青春,我们斗志昂扬。有人说,我们有着至忠至诚的信念,我们拼搏进取。而我却要说,我们团结一心,踏踏实实的工作,丰富了我们的生活;我们默默无语,卓有成效的生活,是我们每个人生命中最美的颜色。