VC Utility

替换文件夹中所有文件部分文件名

void ReplaceFileName(LPCTSTR lpszFolder, LPCTSTR lpszOldString, LPCTSTR lpszNewString)
{
	CString strFolder = lpszFolder;
	strFolder += _T("\\*.*");


	CFileFind ff;
	BOOL bResult = ff.FindFile(strFolder);
	while(bResult)
	{
		bResult = ff.FindNextFile();


		if(!bResult)
			break;


		if (ff.IsDots() || ff.IsSystem() || ff.IsHidden())
			continue;


		if(ff.IsDirectory())
		{
			ReplaceFileName(ff.GetFilePath(), lpszOldString, lpszNewString);
		}
		else
		{
			CString strFileName = ff.GetFilePath();
			CString strNewName = strFileName;
			strNewName.Replace(lpszOldString, lpszNewString);
			CFile::Rename(strFileName, strNewName);
		}
	}
}



VC HTTP 上传文件

BOOL UploadFile(LPCTSTR lpszFilePath, LPCTSTR lpszURL)
{
BOOL bResult = FALSE;
HANDLE hFile = CreateFile(lpszFilePath, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);


if (hFile != INVALID_HANDLE_VALUE)
{
TCHAR   szScheme[_MAX_PATH];
TCHAR   szUserName[_MAX_PATH];
TCHAR   szPassword[_MAX_PATH];
TCHAR   szHostName[_MAX_PATH];
TCHAR   szUrlPath[_MAX_PATH];
TCHAR   szExtraInfo[_MAX_PATH];


URL_COMPONENTS   url;
memset(&url, 0, sizeof(URL_COMPONENTS));
url.dwStructSize = sizeof(URL_COMPONENTS);
url.lpszScheme = szScheme;
url.dwSchemeLength = _MAX_PATH;
url.lpszHostName = szHostName;
url.dwHostNameLength = _MAX_PATH;
url.lpszUserName = szUserName;
url.dwUserNameLength = _MAX_PATH;
url.lpszPassword = szPassword;
url.dwPasswordLength = _MAX_PATH;
url.lpszUrlPath = szUrlPath;
url.dwUrlPathLength = _MAX_PATH;
url.lpszExtraInfo = szExtraInfo;
url.dwExtraInfoLength = _MAX_PATH;


if (InternetCrackUrl(lpszURL, 0, 0, &url))
{
HINTERNET hSession = NULL, hConnect = NULL;
hSession = InternetOpen(_T("test"), INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
hConnect = InternetConnect(hSession, szHostName, url.nPort,
NULL, NULL, INTERNET_SERVICE_HTTP, INTERNET_FLAG_NO_CACHE_WRITE, NULL);
if (hConnect)
{
INTERNET_BUFFERS BufferIn = { 0 };
DWORD dwBytesRead;
DWORD dwBytesWritten;
BYTE pBuffer[1024]; // Read from file in 1K chunks
BOOL bRead, bRet;
BufferIn.dwStructSize = sizeof(INTERNET_BUFFERS);


CString strRemotePath;
strRemotePath.Format(_T("%s/%s"), szUrlPath + 1, _tcsrchr(lpszFilePath, '\\') + 1);
HINTERNET hRequest = HttpOpenRequest(hConnect, _T("PUT"), strRemotePath,
NULL, NULL, NULL, 0, 0);
if (hRequest)
{
BufferIn.dwBufferTotal = GetFileSize(hFile, NULL);
if (HttpSendRequestEx(hRequest, &BufferIn, NULL, HSR_INITIATE, 0))
{
DWORD sum = 0;
UINT uProgress = 0, uNowProgress = 0;
DWORD dwKB = BufferIn.dwBufferTotal >> 10;
TCHAR szText[64];
do
{
if (!(bRead = ReadFile(hFile, pBuffer, sizeof(pBuffer),
&dwBytesRead, NULL)))
{
break;
}


if (dwBytesRead == 0)
break;


if (!(bRet = InternetWriteFile(hRequest, pBuffer, dwBytesRead,
&dwBytesWritten)))
{
break;
}
sum += dwBytesWritten;


uNowProgress = sum * 100 / BufferIn.dwBufferTotal;


TRACE(_T("uploading %d %d\n"), BufferIn.dwBufferTotal, sum);
if (uNowProgress != uProgress)
{
uProgress = uNowProgress;
//_stprintf(szText, _T("共%d KB 已上传 %%%d."), dwKB, uProgress);
//m_scState.SetWindowText(szText);
}


} while (true);


if (sum >= BufferIn.dwBufferTotal)
{
bResult = TRUE;
}


if (!HttpEndRequest(hRequest, NULL, 0, 0))
{
TRACE(_T("HttpEndRequest error code %d.\n"), GetLastError());
}
}
}
}
}
CloseHandle(hFile);
}
return bResult;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值