亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? zipplatform.cpp

?? 一款最完整的工業(yè)組態(tài)軟源代碼
?? CPP
字號:
////////////////////////////////////////////////////////////////////////////////
// $Workfile: ZipPlatform.cpp $
// $Archive: /ZipArchive_Linux/ZipPlatform.cpp $
// $Date: 21-01-04 19:06 $ $Author: Tadeusz Dracz $
////////////////////////////////////////////////////////////////////////////////
// This source file is part of the ZipArchive library source distribution and
// is Copyright 2000-2004 by Tadeusz Dracz (http://www.artpol-software.com/)
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation; either version 2
// of the License, or (at your option) any later version.
// 
// For the licensing details see the file License.txt
////////////////////////////////////////////////////////////////////////////////


#include "stdafx.h"
#include "ZipPlatform.h"
#include "ZipFileHeader.h"
#include "ZipException.h"
#include "ZipAutoBuffer.h"


#include <utime.h>



#include "ZipPathComponent.h"


#include "ZipCompatibility.h"
#include <sys/vfs.h>
#include <unistd.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>

const TCHAR CZipPathComponent::m_cSeparator = _T('/');

#ifndef _UTIMBUF_DEFINED
#define _utimbuf utimbuf
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
DWORD ZipPlatform::GetDeviceFreeSpace(LPCTSTR lpszPath)
{
	struct statfs sStats;

	#if defined (__SVR4) && defined (__sun)
		if (statvfs(lpszPath, &sStats) == -1) // Solaris
	#else
		if (statfs(lpszPath, &sStats) == -1)
	#endif
		return 0;

        return sStats.f_bsize * sStats.f_bavail;
}

bool ZipPlatform::GetFileSize(LPCTSTR lpszFileName, DWORD& dSize)
{
	int f = open(lpszFileName, O_RDONLY);
	if (f == -1)
		return false;
	int iSize = lseek(f, 0, SEEK_END);
	close(f);
	if (iSize == -1)
		return false;
	dSize = (DWORD)iSize;
	return true;
}

CZipString ZipPlatform::GetTmpFileName(LPCTSTR lpszPath, DWORD iSizeNeeded)
{
	TCHAR empty[] = _T(""), prefix [] = _T("zar");
	TCHAR* buf = NULL;
	CZipString tempPath;
	if (lpszPath)
	{
		// first try the user provided directory
		tempPath = lpszPath;
		if (ZipPlatform::GetDeviceFreeSpace(tempPath) < iSizeNeeded)
			tempPath.Empty();
		else
		{
			CZipPathComponent::AppendSeparator(tempPath);
			tempPath += prefix;
			tempPath += _T("XXXXXX");
			TCHAR* c = mktemp(tempPath.GetBuffer(tempPath.GetLength()));
			tempPath.ReleaseBuffer();
			if (c)
				return tempPath;
			else
				tempPath.Empty();
		}
	}


	TCHAR* v = tempnam(tempPath, prefix);
	tempPath = v;
        free(v);

	if (!tempPath.IsEmpty())
	{
		CZipPathComponent zpc(tempPath);
		if (ZipPlatform::GetDeviceFreeSpace(zpc.GetFilePath()) < iSizeNeeded)
			return empty;
		return tempPath;
	}
	else 
		return empty;
}

bool ZipPlatform::GetCurrentDirectory(CZipString& sz)
{
	char* pBuf = getcwd(NULL, 0);
	if (!pBuf)
		return false;
	sz = pBuf;
	free(pBuf);
	return true;
}

bool ZipPlatform::SetFileAttr(LPCTSTR lpFileName, DWORD uAttr)
{
	return chmod(lpFileName, uAttr >> 16) == 0;

}

bool ZipPlatform::GetFileAttr(LPCTSTR lpFileName, DWORD& uAttr)
{
	struct stat sStats;
	if (stat(lpFileName, &sStats) == -1)
		return false;
  	uAttr = (sStats.st_mode & (S_IRWXU | S_IRWXG | S_IRWXO | S_IFMT)) << 16;
  	return true;


}

bool ZipPlatform::GetFileModTime(LPCTSTR lpFileName, time_t & ttime)
{

    	struct stat st;
	if (stat(lpFileName, &st) != 0)
		return false;

 	ttime = st.st_mtime;
	return ttime != -1;
}

bool ZipPlatform::SetFileModTime(LPCTSTR lpFileName, time_t ttime)
{
	struct utimbuf ub;
	ub.actime = time(NULL);
	ub.modtime = ttime == -1 ? time(NULL) : ttime; // if wrong file time, set it to the current
	return utime(lpFileName, &ub) == 0;
}


bool ZipPlatform::ChangeDirectory(LPCTSTR lpDirectory)
{
	return chdir(lpDirectory) == 0; 
}
int ZipPlatform::FileExists(LPCTSTR lpszName)
{
    	struct stat st;
	if (stat(lpszName, &st) != 0)
		return 0;
	else
	{
		if (S_ISDIR(st.st_mode))
			return -1;
		else
			return 1;
	}



}

ZIPINLINE  bool ZipPlatform::IsDriveRemovable(LPCTSTR lpszFilePath)
{
	// not implemmented
	return true;
}

ZIPINLINE  bool ZipPlatform::SetVolLabel(LPCTSTR lpszPath, LPCTSTR lpszLabel)
{
	// not implemmented
        return true;
}

ZIPINLINE void ZipPlatform::AnsiOem(CZipAutoBuffer& buffer, bool bAnsiToOem)
{
	// not implemmented
}

ZIPINLINE  bool ZipPlatform::RemoveFile(LPCTSTR lpszFileName, bool bThrow)
{
	if (unlink(lpszFileName) != 0)
		if (bThrow)
			CZipException::Throw(CZipException::notRemoved, lpszFileName);
		else 
			return false;
	return true;


}
ZIPINLINE  bool ZipPlatform::RenameFile( LPCTSTR lpszOldName, LPCTSTR lpszNewName , bool bThrow)
{

	if (rename(lpszOldName, lpszNewName) != 0)
		if (bThrow)
			CZipException::Throw(CZipException::notRenamed, lpszOldName);
		else 
			return false;
		return true;

}
ZIPINLINE  bool ZipPlatform::IsDirectory(DWORD uAttr)
{
	return S_ISDIR(uAttr >> 16) != 0;
}
ZIPINLINE  bool ZipPlatform::CreateDirectory(LPCTSTR lpDirectory)
{
	return mkdir(lpDirectory, S_IRUSR | S_IWUSR | S_IRGRP |S_IROTH) == 0;

}

ZIPINLINE  DWORD ZipPlatform::GetDefaultAttributes()
{
	return 0x81a40000;
}

ZIPINLINE  DWORD ZipPlatform::GetDefaultDirAttributes()
{
	return 0x41ff0010;
}


ZIPINLINE  int ZipPlatform::GetSystemID()
{
	return ZipCompatibility::zcUnix;
}

ZIPINLINE bool ZipPlatform::GetSystemCaseSensitivity()
{
	return true;
}


bool ZipPlatform::TruncateFile(int iDes, DWORD iSize)
{
	return ftruncate(iDes, iSize) == 0;

}

int ZipPlatform::OpenFile(LPCTSTR lpszFileName, UINT iMode, int iShareMode)
{
	return  open(lpszFileName, iMode, S_IRUSR | S_IWUSR | S_IRGRP |S_IROTH );
}

bool ZipPlatform::FlushFile(int iDes)
{
	return fsync(iDes) == 0;
}

int ZipPlatform::GetFileSystemHandle(int iDes)
{
        return iDes;
}


?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕一区二区三中文字幕| 欧美日韩亚洲综合一区| 337p日本欧洲亚洲大胆色噜噜| 日韩高清电影一区| 欧美一区二区精美| 美女视频一区在线观看| 精品三级在线观看| 成人福利视频网站| 亚洲男人都懂的| 91麻豆精品国产91久久久资源速度| 免费在线观看一区| 久久精品男人的天堂| 成人午夜精品在线| 亚洲一卡二卡三卡四卡无卡久久| 欧美日本精品一区二区三区| 久久成人精品无人区| 中文字幕av一区二区三区高| 欧美色男人天堂| 九九**精品视频免费播放| 国产精品网站导航| 欧美精品日韩一区| 国产成人在线视频播放| 亚洲日本va午夜在线影院| 欧美日韩国产小视频在线观看| 久久99热狠狠色一区二区| 中文字幕av一区 二区| 在线电影国产精品| 成人免费观看av| 爽爽淫人综合网网站| 欧美国产一区二区| 欧美精品三级日韩久久| 成人av一区二区三区| 亚洲一区二区欧美| 久久免费精品国产久精品久久久久| www.亚洲在线| 久久成人免费网| 亚洲永久免费av| 国产人成一区二区三区影院| 欧洲一区在线电影| 国产福利一区二区三区在线视频| 亚洲综合无码一区二区| 国产亚洲欧美中文| 欧美一区二区三区喷汁尤物| 99视频一区二区三区| 麻豆91免费看| 五月综合激情网| 亚洲手机成人高清视频| 国产日本亚洲高清| 精品国产一二三区| 欧美情侣在线播放| 欧美影院一区二区三区| 本田岬高潮一区二区三区| 久久69国产一区二区蜜臀| 五月婷婷色综合| 亚洲一区二区三区精品在线| 亚洲欧洲日韩综合一区二区| 久久精品欧美一区二区三区麻豆| 在线播放中文字幕一区| 欧美性视频一区二区三区| 99在线精品一区二区三区| 国产宾馆实践打屁股91| 韩国理伦片一区二区三区在线播放| 亚洲一区二区三区视频在线播放| 亚洲女同一区二区| 成人欧美一区二区三区视频网页| 久久久久9999亚洲精品| 欧美不卡激情三级在线观看| 91精品国产91久久久久久最新毛片 | 99精品热视频| 国产成人免费在线观看不卡| 国产制服丝袜一区| 精东粉嫩av免费一区二区三区| 秋霞影院一区二区| 日韩成人免费电影| 免费亚洲电影在线| 久久99久久精品| 老司机午夜精品| 久久99精品久久久久久久久久久久 | 蜜桃免费网站一区二区三区| 丝袜亚洲另类丝袜在线| 日韩一区精品字幕| 日韩av中文字幕一区二区| 日本va欧美va精品发布| 免费观看成人av| 免费成人美女在线观看.| 青青草原综合久久大伊人精品优势| 免费看日韩a级影片| 久久精品国产免费| 国产一区二三区| 国产精品99久久久久久久女警| 成人一区二区三区在线观看| 色综合天天综合网国产成人综合天| 97精品国产露脸对白| 色吧成人激情小说| 欧美一级二级三级乱码| 精品处破学生在线二十三| 久久精品一区八戒影视| 亚洲欧美日韩久久| 亚洲第一福利一区| 久久精品久久99精品久久| 国产高清在线观看免费不卡| 色妞www精品视频| 欧美一区二区黄色| 国产欧美日韩精品在线| 一区二区三国产精华液| 视频一区二区三区中文字幕| 激情综合五月婷婷| 99久精品国产| 日韩一卡二卡三卡四卡| 欧美极品少妇xxxxⅹ高跟鞋 | 亚洲v中文字幕| 国产在线精品免费| 91亚洲男人天堂| 欧美一区二区三区在线观看视频| 国产亚洲精品福利| 亚洲1区2区3区4区| 国产成人综合亚洲网站| 欧美日韩精品高清| 国产丝袜在线精品| 视频一区中文字幕| 99re这里都是精品| 91精品国产免费| 自拍偷自拍亚洲精品播放| 日韩成人一区二区三区在线观看| 成人性色生活片| 日韩欧美在线一区二区三区| 国产日本一区二区| 蜜桃精品视频在线观看| 色婷婷综合五月| 国产午夜亚洲精品理论片色戒| 亚洲国产乱码最新视频| 成人一区二区三区在线观看| 欧美精品在线观看一区二区| 国产精品久久久久久亚洲毛片| 日韩电影免费在线观看网站| 91久久精品国产91性色tv| 国产人成一区二区三区影院| 蜜臀99久久精品久久久久久软件| 91官网在线免费观看| 国产精品每日更新| 久草精品在线观看| 欧美一区二区三区精品| 一区二区成人在线| aa级大片欧美| 国产精品免费看片| 国产精品原创巨作av| 日韩欧美国产精品一区| 亚洲国产成人高清精品| 日本丶国产丶欧美色综合| 国产精品免费视频网站| 国产成人aaa| 欧美精品一区二区三区一线天视频 | 成人爱爱电影网址| 国产午夜精品理论片a级大结局| 欧美bbbbb| 91精品国模一区二区三区| 五月婷婷综合激情| 欧美日韩成人综合天天影院| 亚洲国产wwwccc36天堂| 在线国产电影不卡| 一区二区三区影院| 色婷婷av一区| 亚洲综合免费观看高清完整版 | 国产iv一区二区三区| 国产午夜精品美女毛片视频| 国产在线视频一区二区三区| 精品精品国产高清a毛片牛牛| 日本女人一区二区三区| 91精品国产综合久久久久久久| 日韩精品乱码av一区二区| 777奇米四色成人影色区| 日本va欧美va欧美va精品| 日韩女优制服丝袜电影| 久久aⅴ国产欧美74aaa| 欧美哺乳videos| 国产成人精品影视| 国产精品久久久久毛片软件| 91年精品国产| 亚洲成人高清在线| 日韩视频免费直播| 激情综合一区二区三区| 国产精品三级av| 色婷婷av一区| 日本vs亚洲vs韩国一区三区| 久久青草国产手机看片福利盒子| 国产大陆亚洲精品国产| 亚洲欧美日韩在线不卡| 欧美日韩精品一区二区三区 | 婷婷久久综合九色综合绿巨人| 欧美人狂配大交3d怪物一区| 久久精品99国产国产精| 国产精品色婷婷久久58| 欧美伊人精品成人久久综合97| 欧美aaa在线| 国产午夜精品久久久久久免费视| 91丝袜美腿高跟国产极品老师 | 九色|91porny| 亚洲日韩欧美一区二区在线| 91精品国产欧美一区二区18| 成人午夜电影久久影院|