⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fits_othermethod.cpp

📁 本源码是一个用于卫星数据处理的程序
💻 CPP
字号:
/************************************************************************
Fits_othermethod.cpp:辅助方法和函数
  
DirExist        -- 判断一个文件夹是否存在,并获取目录名
FileExist       -- 判断一个文件是否存在,用于判断是否需要升级版本号
file_exist      -- 判断当前文件夹下文件是否存在
transfer        -- 将产品搬移到指定路径下
DirExist1       -- 判断一个文件夹是否存在
CreateDir       -- 创建目录,包含子目录,可以创建多级子目录
************************************************************************/

#include "stdafx.h"
#include "fitsio.h"
#include "Fits.h"

#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
/*****************************************************
** 函数名: DirExist
** 输入: pszDirName
**        pszDirName    --- 
** 输出: dicname
**        dicname ---------          
** 调用说明:	
							
** 功能描述:判断一个文件夹是否存在
****************************************************************************************/
bool DirExist(char* dicname,const char *pszDirName)
{
	WIN32_FIND_DATA fileinfo;
    char _szDir[_MAX_PATH];
    strcpy(_szDir, pszDirName);
    int nLen = strlen(_szDir);
    if( (_szDir[nLen-1] == '\\') || (_szDir[nLen-1] == '/') )
    {
    	_szDir[nLen-1] = '\0';
    }
	HANDLE	hFind = ::FindFirstFile(_szDir, &fileinfo);

	if (hFind == INVALID_HANDLE_VALUE)
	{
		return false;
	}
		if( fileinfo.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY )
		{
		strcpy(dicname, fileinfo.cFileName);//获取目录名
		::FindClose(hFind);
		return true;
    }
    ::FindClose(hFind);
	return false;
}
/*--------------------------------------------------------------------------*/
//判断一个文件是否存在,用于判断是否需要升级版本号
bool FileExist(const char *pszFileName)
{
	WIN32_FIND_DATA fileinfo;
    char _szDir[_MAX_PATH];
    strcpy(_szDir, pszFileName);
    int nLen = strlen(_szDir);
    if( (_szDir[nLen-1] == '\\') || (_szDir[nLen-1] == '/') )
    {
    	_szDir[nLen-1] = '\0';
    }
	HANDLE	hFind = ::FindFirstFile(_szDir, &fileinfo);

	if (hFind == INVALID_HANDLE_VALUE)
	{
		return false;
	}
    else
    {						
		::FindClose(hFind);
        return true;
    }
    ::FindClose(hFind);
	return false;
}

/*--------------------------------------------------------------------------*/
//当前文件夹下文件是否存在
int file_exist(char* filename)
{
    FILE *fp;
    if ((fp = fopen(filename,  "rt")) == NULL)
    {
		return 0;
	}
	fclose(fp);
	return 1;
} 

/*****************************************************
** 函数名: DirExist1
** 输入: pszDirName
**        pszDirName    --- 
** 输出: 
          文件夹存在返回true,否则返回false 
** 调用说明:	
**							
** 功能描述:判断一个文件夹是否存在
****************************************************************************************/
bool DirExist1(const char *pszDirName)
{
	WIN32_FIND_DATA fileinfo;
    char _szDir[_MAX_PATH];
    strcpy(_szDir, pszDirName);
//    int nLen = strlen(_szDir);
//    if( (_szDir[nLen-1] == '\\') || (_szDir[nLen-1] == '/') )
//    {
//    	_szDir[nLen-1] = '\0';
//    }
//	  
	char *p = NULL;
	if( (p = strrchr( _szDir, '\\' )) == NULL || *p != '\\' )//从_szDir后面找反斜杠	
		return false;
	*p = '\0';
    int nLen = strlen(_szDir);
	HANDLE	hFind = ::FindFirstFile(_szDir, &fileinfo);

	if (hFind == INVALID_HANDLE_VALUE)//没找到
	{
		return false;
	}
    if( fileinfo.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY )//找到
    {
		::FindClose(hFind);
        return true;
    }
    ::FindClose(hFind);
	return false;
}
/*--------------------------------------------------------------------------*/
// 输入要创建的文件的名称,
// 将判断是否创建目录,包含子目录,可以创建多级子目录
// pszFileName: 要创建的文件的名称
/*****************************************************
** 函数名: CreateFilePath
** 输入: pszFileName
**        pszFileName    --- 
** 输出:  
**       
** 调用说明:	
**							
** 功能描述:
****************************************************************************************/
bool CreateFilePath(const char *pszFileName)
{
	BOOL bRet = FALSE;
    char  _szDir[_MAX_PATH];
    char  _szTmp[_MAX_DIR];
    int  nLen = 0;
    int  idx ;
	if( (DirExist1(pszFileName)) == true )//判断是否已经存在
    	return true;
    strcpy(_szDir, pszFileName);
//    nLen = strlen(_szDir);
//    if( _szDir[nLen-1] == '\\' || _szDir[nLen-1] == '/' )
//    {
//    	_szDir[nLen-1] = '\0';
//    }
	char *p = NULL;
	if( (p = strrchr( _szDir, '\\' )) == NULL || *p != '\\' )	return false;
	*p = '\0';
    nLen = strlen(_szDir);
    memset(_szTmp, 0, _MAX_DIR);
    char  _str[2];
    for(idx = 0; idx < nLen; idx++)
    {
    	if(_szDir[idx] != '\\' )
        {
        	_str[0] = _szDir[idx];
            _str[1] = 0;
			strcat(_szTmp, _str);
        }
        else
        {
            bRet = ::CreateDirectory(_szTmp, NULL);
            if( bRet )
            {
            	::SetFileAttributes(_szTmp, FILE_ATTRIBUTE_NORMAL);
            }
        	_str[0] = _szDir[idx];
            _str[1] = 0;
			strcat(_szTmp, _str);
        }
        if( idx == nLen-1 )
        {
            bRet = ::CreateDirectory(_szTmp, NULL);
            if( bRet )
            {
            	::SetFileAttributes(_szTmp, FILE_ATTRIBUTE_NORMAL);
            }
        }
    }
	if( DirExist1(_szTmp) )
    	return true;
	return false;
}

bool CreateDir( const char * str )
{
	return false;
}
/*--------------------------------------------------------------------------*/
//判断一个盘符是否存在
bool DirExist2(const char *pszDirName)
{
	WIN32_FIND_DATA fileinfo;
    char _szDir[_MAX_PATH];
    strcpy(_szDir, pszDirName);
    int nLen = strlen(_szDir);
    if( (_szDir[2] == '\\') || (_szDir[2] == '/') )
    {
    	_szDir[nLen-1] = '\0';
    }
	HANDLE	hFind = ::FindFirstFile(_szDir, &fileinfo);

	if (hFind == INVALID_HANDLE_VALUE)
	{
		return false;
	}
    else
    {						
		::FindClose(hFind);
        return true;
    }
    ::FindClose(hFind);
	return false;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -