文件拷贝

void filecopyc(LPCTSTR szExistingInfoFileName, LPCTSTR szNewInfoFileName){  

	FILE *ifp ,*ofp;
	if((ifp=fopen(szExistingInfoFileName,"r"))==NULL)
	{
		//コピー元ない
		return;
	}

	if((ofp=fopen(szNewInfoFileName,"w"))==NULL)  
	{

	}

	int c;  
	while((c = getc(ifp)) != EOF){  

		putc(c, ofp);  

	} 
	fclose(ifp);
	fclose(ofp);

}
#define MAXSTRLEN 512 //毎回書き込みデータのバイト長さ
// szExistingInfoFileName コピー元ファイルパス。
// szNewInfoFileName コピー先ファイルパス。
void read_copy_file(LPCTSTR szExistingInfoFileName, LPCTSTR szNewInfoFileName)
{
	FILE *ifp ,*ofp;
	char buf[MAXSTRLEN+1];
	int readlen, writelen = 0;

	memset(buf,0,MAXSTRLEN+1); 
	// バイナリ読み込みモードでファイルをオープン 
	if((ifp=fopen(szExistingInfoFileName,"rb"))==NULL)
	{
		//コピー元ない
		return;
	}
	// バイナリ書き込みモードでファイルをオープン。コピー先ない場合、作成します。
	if((ofp=fopen(szNewInfoFileName,"wb"))==NULL)
	{
		ASSERT(0);
		return;
	}

	// ファイルの先頭に移動 
	fseek(ifp,0,SEEK_SET); 
	fseek(ofp,0,SEEK_SET); 

	// ファイルにデータを書き込み
	while((readlen = fread(buf, sizeof(char), MAXSTRLEN, ifp)) != 0) 
	{
		writelen += fwrite(buf, sizeof(char), readlen, ofp); 
		memset(buf, 0, MAXSTRLEN+1); 
	} 

	// ファイルクローズ
	fclose(ifp); 
	fclose(ofp); 
}

#include<iostream>  
#include<string>  
#include<fstream>  
using namespace std;  
void filecopycpp(LPCTSTR szExistingInfoFileName, LPCTSTR szNewInfoFileName){  
  
        ifstream sourceFile(szExistingInfoFileName);  
        ofstream targetFile(szNewInfoFileName);  
  
        if(!sourceFile || !targetFile){  

        }  
  
        string line;  

        while(getline(sourceFile, line)){  
                targetFile<<line;  
                if(!sourceFile.eof()) targetFile<<endl;  
        }  
  
        sourceFile.close();  
        targetFile.close();  

}  
int modefyFileTime(LPCTSTR szFileName)
{

	HANDLE file;
	FILETIME file_time,local_file_time;
	SYSTEMTIME system_time, system_nowTime;

	//ファイルを開く(なければ作成)
	file = CreateFile(szFileName,GENERIC_READ | GENERIC_WRITE,0,NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
	if(file == INVALID_HANDLE_VALUE){
	}

	//-- 現在の更新時間
	//更新時間の取得(必要ない情報はNULLでOK)
	GetFileTime(file,NULL,NULL,&file_time);

	//ローカルの時間へ変換
	FileTimeToLocalFileTime(&file_time,&local_file_time);//データの型は変わってない
	//SYSTEMTIME構造体へ変換
	FileTimeToSystemTime(&local_file_time,&system_time);//データの型の変換

	//現在の時刻を取得
	GetLocalTime(&system_nowTime);

	//-- 時刻修正
	system_time = system_nowTime; 
	//FILETIME構造体へ戻す
	SystemTimeToFileTime(&system_time,&local_file_time);
	//ローカルからシステム時間へ変換
	LocalFileTimeToFileTime(&local_file_time,&file_time);
	//更新時間の更新(更新不要な情報はNULLでOK)
	SetFileTime(file,NULL,NULL,&file_time);

	//ファイルを閉じる
	CloseHandle(file);

	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值