///###////////////////////////////////////////////////////////////////////////
//
// Burton Computer Corporation
// http://www.burton-computer.com
// http://www.cooldevtools.com
// $Id: File.h 272 2007-01-06 19:37:27Z brian $
//
// Copyright (C) 2007 Burton Computer Corporation
// ALL RIGHTS RESERVED
//
// This program is open source software; you can redistribute it
// and/or modify it under the terms of the Q Public License (QPL)
// version 1.0. Use of this software in whole or in part, including
// linking it (modified or unmodified) into other programs is
// subject to the terms of the QPL.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// Q Public License for more details.
//
// You should have received a copy of the Q Public License
// along with this program; see the file LICENSE.txt. If not, visit
// the Burton Computer Corporation or CoolDevTools web site
// QPL pages at:
//
// http://www.burton-computer.com/qpl.html
// http://www.cooldevtools.com/qpl.html
//
#ifndef _File_h
#define _File_h
#include <vector>
#include "util.h"
class File
{
public:
explicit File();
explicit File(const string &path);
explicit File(const File &parent,
const string &filename);
File(const File &);
File& operator=(const File &);
~File();
operator const char *() const
{
return m_path.c_str();
}
void addComponent(const string &name);
void setPath(const string &path);
string getPath() const
{
return m_path;
}
string getName() const;
bool exists() const;
bool isFile() const;
bool isDirectory() const;
bool isSelfOrParent() const;
bool isHidden() const;
bool hasChild(const string &path) const;
File parent() const;
unsigned long getSize() const;
void makeDirectory(int mode) const;
void rename(const string &new_path);
void remove();
bool hasSuffix(const string &suffix) const;
void setSuffix(const string &suffix);
void children(vector<File> &files);
static File getHomeDir();
static const string DOT;
static const string DOT_DOT;
private:
string m_path;
};
bool operator<(const File &a, const File &b);
#endif // _File_h
syntax highlighted by Code2HTML, v. 0.9.1