// -*- c++ -*-
/* This file is part of the KDE libraries
Copyright (C) 1997, 1998 Richard Moore <rich@kde.org>
1998 Stephan Kulow <coolo@kde.org>
1998 Daniel Grana <grana@ie.iwi.unibe.ch>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library 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 GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public License
along with this library; see the file COPYING.LIB. If not, write to
the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
*/
#ifndef KFILEINFO_H
#define KFILEINFO_H
#include <qstring.h>
#include <qdatetime.h>
#include <qlist.h>
#include <time.h>
class QFileInfo;
class KDirEntry;
/**
* Provides information about a file that has been examined
* with KDir.
*
* @author rich@kde.org
* @version $Id: kfileinfo.h,v 1.8 1998/11/15 23:42:56 ettrich Exp $
*/
class KFileInfo {
public:
/**
* Construct a KFileInfo object from a KDirEntry.
*/
KFileInfo(const KDirEntry &);
/**
* Constructs a KFileInfo object from a QFileInfo.
* This is only useful for local files
*/
KFileInfo(const QFileInfo &);
/**
* Constructs a "little" KFileInfo (just for local files)
**/
KFileInfo(const char *dir, const char *name = "");
/**
* Destroy the KFileInfo object.
*/
~KFileInfo(){};
/**
* Copy a KFileInfo.
*/
KFileInfo &operator=(const KFileInfo &);
/**
* Returns true if this file is a directory.
*/
bool isDir() const { return myIsDir; }
bool isFile() const { return myIsFile; }
bool isSymLink() const { return myIsSymLink; }
QString absURL() const { return myBaseURL; }
QString baseURL();
QString extension();
/**
* Returns the name of the file
*
* Note: If this object does not refer to a real file
* (broken symlink), it will return 0
**/
const char *fileName() const { return myName; }
QString filePath();
/**
* Returns the group of the file.
*/
const char *date() const { return myDate; }
/**
* Returns the access permissions for the file as a string.
*/
const char *access() const { return myAccess; }
/**
* Returns the owner of the file.
*/
const char *owner() const { return myOwner; }
/**
* Returns the group of the file.
*/
const char *group() const { return myGroup; }
/**
* Returns the size of the file.
*/
uint size() const { return mySize; }
/**
* Returns true if the specified permission flag is set.
*/
bool permission(uint permissionSpec);
// overriding QFileInfo's function
bool isReadable() const ;
static QString dateTime(time_t secsSince1Jan1970UTC);
protected:
void parsePermissions(const char *perms);
void parsePermissions(uint perm);
private:
QString myName;
QString myBaseURL;
QString myAccess;
QString myDate;
QString myOwner;
QString myGroup;
bool myIsDir;
bool myIsFile;
bool myIsSymLink;
uint myPermissions;
int mySize;
bool myIsReadable;
};
typedef QList<KFileInfo> KFileInfoList;
typedef QListIterator<KFileInfo> KFileInfoListIterator;
inline bool KFileInfo::permission(uint permissionSpec)
{
return ((myPermissions & permissionSpec) != 0);
}
#endif // KFILEINFO_H
Documentation generated by root@darkstar.lst.de on Wed Sep 8 17:38:57 CEST 1999