1
0
mirror of https://github.com/vcmi/vcmi.git synced 2024-12-26 22:57:00 +02:00
vcmi/lib/Filesystem/CFileInfo.h
Michał W. Urbańczyk cd63c177e2 * std::unordered_map implementation in MSVC 10 has terribly slow destructor. Since bug is fixed only in VC11, I replaced it with boost::unordered_map.
* fixed crash with invalid .lod archive (some H3 installations have fake 1 byte .lod "archives"
* fixed crash when parsing invalid map file
* minor random optimizations (rv-refs, etc)
2012-08-08 08:25:27 +00:00

115 lines
2.1 KiB
C++

/*
* CFileInfo.h, part of VCMI engine
*
* Authors: listed in file AUTHORS in main folder
*
* License: GNU General Public License v2.0 or later
* Full text of license available in license.txt file, in main folder
*
*/
#pragma once
#include "CResourceLoader.h"
/**
* A class which holds information about a file.
*/
class DLL_LINKAGE CFileInfo
{
public:
/**
* Default ctor.
*/
CFileInfo();
/**
* Ctor.
*
* @param name The path and name of the file.
*/
explicit CFileInfo(std::string name);
/**
* Checks if the file exists.
*
* @return true if the file exists, false if not.
*/
bool exists() const;
/**
* Checks if the file is a directory.
*
* @return true if the file is a directory, false if not.
*/
bool isDirectory() const;
/**
* Sets the name.
*
* @param name The name of the file
*/
void setName(const std::string & name);
/**
* Gets the name of the file.
*
* @return the path and name of the file. E.g. ./dir/file.ext
*/
std::string getName() const;
/**
* Gets the path to the file only.
*
* @return the path to the file only. E.g. ./dir/
*/
std::string getPath() const;
/**
* Gets the file extension.
*
* @return the file extension. E.g. .ext
*/
std::string getExtension() const;
/**
* Returns the name of the file.
*
* @return the name of the file. E.g. foo.txt
*/
std::string getFilename() const;
/**
* Gets the file name + path exclusive the extension of the file.
*
* @return the file name exclusive the extension of the file. E.g. ./dir/foo
*/
std::string getStem() const;
/**
* Gets the file name exclusive the extension of the file.
*
* @return the file name exclusive the extension and a path of the file. E.g. foo
*/
std::string getBaseName() const;
/**
* Gets the extension type as a EResType enumeration.
*
* @return the extension type as a EResType enumeration.
*/
EResType::Type getType() const;
/**
* Gets the timestamp of the file.
*
* @return the timestamp of the file, 0 if no timestamp was set
*/
std::time_t getDate() const;
private:
/** Contains the original URI(not modified) e.g. ./dir/foo.txt */
std::string name;
};