This commit is contained in:
romkazvo
2023-08-07 19:29:24 +08:00
commit 34d6c5d489
4832 changed files with 1389451 additions and 0 deletions

99
Editor/Util/FileUtil.h Normal file
View File

@@ -0,0 +1,99 @@
////////////////////////////////////////////////////////////////////////////
//
// Crytek Engine Source File.
// Copyright (C), Crytek Studios, 2002.
// -------------------------------------------------------------------------
// File name: fileutil.h
// Version: v1.00
// Created: 13/9/2002 by Timur.
// Compilers: Visual Studio.NET
// Description:
// -------------------------------------------------------------------------
// History:
//
////////////////////////////////////////////////////////////////////////////
#ifndef __fileutil_h__
#define __fileutil_h__
#if _MSC_VER > 1000
#pragma once
#endif
/* File types used for File Open dialogs.
*
*/
enum ECustomFileType
{
EFILE_TYPE_ANY,
EFILE_TYPE_GEOMETRY,
EFILE_TYPE_TEXTURE,
EFILE_TYPE_SOUND,
EFILE_TYPE_LAST,
};
//////////////////////////////////////////////////////////////////////////
class SANDBOX_API CFileUtil
{
public:
struct FileDesc
{
CString filename;
unsigned int attrib;
time_t time_create; //! -1 for FAT file systems
time_t time_access; //! -1 for FAT file systems
time_t time_write;
int64 size;
};
enum ETextFileType
{
FILE_TYPE_SCRIPT,
FILE_TYPE_SHADER
};
typedef std::vector<FileDesc> FileArray;
static bool ScanDirectory( const CString &path,const CString &fileSpec,FileArray &files, bool recursive=true );
//static bool ScanDirectory( const CString &startDirectory,const CString &searchPath,const CString &fileSpecZ,FileArray &files, bool recursive=true );
static bool CompileLuaFile( const char *luaFilename );
static void EditTextFile( const char *txtFile,int line=0,ETextFileType fileType=FILE_TYPE_SCRIPT );
//! Open file selection dialog.
static bool SelectFile( const CString &fileSpec,const CString &searchFolder,CString &fullFileName );
//! Open file selection dialog.
static bool SelectFiles( const CString &fileSpec,const CString &searchFolder,std::vector<CString> &files );
//! Display OpenFile dialog and allow to select multiple files.
//! @return true if selected, false if canceled.
//! @outputFile Inputs and Outputs filename.
static bool SelectSingleFile( ECustomFileType fileType,CString &outputFile,const CString &filter="",const CString &initialDir="" );
//! Display OpenFile dialog and allow to select multiple files.
//! @return true if selected, false if canceled.
static bool SelectMultipleFiles( ECustomFileType fileType,std::vector<CString> &files,const CString &filter="",const CString &initialDir="" );
static bool SelectSaveFile( const CString &fileFilter,const CString &defaulExtension,const CString &startFolder,CString &fileName );
//! If file is read-only ask user if he wants to overwrite it.
//! If yes file is deleted.
//! @return True if file was deleted.
static bool OverwriteFile( const char *filename );
//////////////////////////////////////////////////////////////////////////
// Interface to Source safe.
//////////////////////////////////////////////////////////////////////////
//! Checks out the file from source safe.
static bool CheckoutFile( const char *filename );
//! Checks in the file to source safe.
static bool CheckinFile( const char *filename );
//! Creates this directory.
static void CreateDirectory( const char *dir );
//! Makes a backup file.
static void BackupFile( const char *filename );
};
#endif // __fileutil_h__