分析:程序的逻辑很简单。程序必须打开两个文件,以可读的方式打开一个已有文件和以可写的方式打开一个新文件,后将已有文件中的内容,暂时存放在内存中,再写入新的文件,后关闭所有文件,程序结束。
步骤1:首先需要声明两个文件指针,并让它们分别指向打开的旧文件和新文件,并检查文件是否被打开,以下是代码:
FILE *f_old = NULL //指向旧文件的文件指针FILE *f_new = NULL //指向新文件的文件指针
const char *old_name = "D:\\temp\\old.txt" //假设旧文件是D盘temp文件夹中的old.txt文件(字符串中输入'\'符号要用两个连续的'\'符号
const char *new_name = "D:\\temp\\new.txt" //假设新文件是D盘temp文件夹中的new.txt文件
if((f_old = fopen(old_name,"r")) == NULL) //以只读方式打开旧文件并检查,如果打开失败,程序将会结束,并在屏幕显示一条信息提示
{
printf("old.txt文件打开失败!\n")
return 1
}
if((f_new = fopen(new_name,"w")) == NULL) //以只写方式打开新文件并检查,如果打开失败,程序将会结束,并在屏幕显示一条信息提示
{
printf("nwe.txt文件打开失败!\n")
return 1
}
步骤2:打开两个文件后,就需要读出旧文件内容,并暂时储存在一段固定大小的内存中,再写入新的文件。还需要一个循环来重复这项工作,直到文件末尾,以下是代码:
char temp[1024] = {0} //声明大小为1024(可以更大,但雀团伍不推荐)的字符串,并初始化为0while(fgets(temp,1024,f_old)) //因为并不知道要循环多少次,所以推荐使用while循环,当没有内容可读时,循环结束
fputs(temp,f_new) //使用fputs函数将读出的内容写入新的文件
步骤3:现在已经将旧文件的内容全部写入到了新文件中,接下来我们来做一些收尾工作,关闭文件,放空指针,以下是代码:
fclose(f_old) //关闭旧文件fclose(f_new) //关闭新文件
f_old = f_new = NULL //让两个文件指针指向空
任务完成,现在可以去看看新文件里的内容了。下面是完整代码:
#include <stdio.h> //所有代码只需要stdio.h头文件int main(void)
{
FILE *f_old = NULL //旧文件指针
FILE *f_new = NULL //新文件指针
const char *old_name = "D:\\temp\\old.txt" //旧文件名,可自定义
const char *new_name = "D:\\temp\\new.txt" //新文件名,可自定义
if((f_old = fopen(old_name,"r")) == NULL) //打开并检查旧文件指针
{
printf("old.txt文件打开失败!\n") //若打开失败后会显示一条提示信息
顷或 return 1 //返回1,程序非正常结束
}
if((f_new = fopen(new_name,"w")) == NULL) //打开并检查新文件指针
{
printf("nwe.txt文件打开失败!\n") //若打开失败后会显示一条提示信息
return 1 //返回1,程序非正常结束
}
char temp[1024] = {0} //申明并初始化一个中转字符数组,大小可自定义
while(fgets(temp,1024,f_old)) //while循环使用fgets函数,读取旧文件内容暂时存放到temp,当或磨无内容可读时,循环结束
fputs(temp,f_new) //使用fputs函数,每次迭代将temp的内容写入新文件中
fclose(f_old) //关闭旧文件
fclose(f_new) //关闭新文件
f_old = f_new = NULL //将两个文件指针指向空
return 0
}
楼上给的很详细的,system.IO给的一个属性叫File.LastWriteTime即你电脑里看见的 修改时间。
代码稍微更改
string filename = Directory.GetFiles(@"c:/我的文档").Select(x => new { FileName = x, LastWritetime = File.GetLastWriteTime(x) }).OrderByDescending(x =>唯帆 x.LastWritetime).ElementAt(1).FileName
这个filename 即你要的第二近的文件的完整路径。
至于内容,C#可以读取文件指悔雹流,
Stream fs = File.Open("filename ", FileMode.Open)fs即 在C#中,读取到的文件。前游
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)