📄 fits_othermethod.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 + -