diff -r f5050f1da672 -r 04becd199f91 javacommons/fileutils/inc/fileutilities.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/javacommons/fileutils/inc/fileutilities.h Tue Apr 27 16:30:29 2010 +0300 @@ -0,0 +1,208 @@ +/* +* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: FileUtilities - Provied file utilities + * +*/ + + +#ifndef FILEUTILITIES_H +#define FILEUTILITIES_H + +#include +#include + +namespace java +{ +namespace fileutils +{ + +OS_NONSHARABLE_CLASS(FileUtilities) +{ +public: + + /** + * Returns boolean value indicating if the path specified pointed to a file. + * + * @param[in] aPath: Absolute path of the file/directory + * @return true if the path specified was a file. false otherwise. + */ + OS_IMPORT static bool isFile(const std::wstring& aPath); + + /** + * Returns boolean value indicating if the path specified pointed to a directory. + * + * @param[in] aPath: Absolute path of the file/directory + * @return true if the path specified was a directory. false otherwise. + */ + OS_IMPORT static bool isDirectory(const std::wstring& aPath); + + /** + * Checks to see if the path specified exists. + * + * @param[in] aPath: Absolute path of the file/directory + * @return true if the path specified exists. false otherwise. + */ + OS_IMPORT static bool exists(const std::wstring& aPath); + + /** + * Checks to see if the path specified can be read. + * + * @param[in] aPath: Absolute path of the file/directory + * @return true if the path specified can be read. false otherwise. + */ + OS_IMPORT static bool canRead(const std::wstring& aPath); + + /** + * Checks to see if the path specified can be written into. + * + * @param[in] aPath: Absolute path of the file/directory + * @return true if the path specified can be written. false otherwise. + */ + OS_IMPORT static bool canWrite(const std::wstring& aPath); + + /** + * Returns the size of the file. + * + * @param[in] aPath: Absolute path of the file + * @return size of the file in bytes. + * @throws errno value in case of error + */ + OS_IMPORT static long fileSize(const std::wstring& aPath); + + /** + * Returns the last modified time of the file/directory + * + * @param[in] aPath: Absolute path of the file/directory + * @return last modified time of the file. + * @throws errno value in case of error + */ + OS_IMPORT static long lastModified(const std::wstring& aPath); + + /** + * Changes the readable attribute of the file based on the aReadable attribute + * + * @param[in] aFile: Absolute path of the file/directory + * @param[in] aReadable: boolean indicating if read must be allowed or not. + * @return 0 in case of success, errno value in case of failure + */ + OS_IMPORT static int setReadable(const std::wstring& aFile, bool aReadable); + + /** + * Changes the writable attribute of the file based on the aWritable attribute + * + * @param[in] aFile: Absolute path of the file/directory + * @param[in] aWritable: boolean indicating if write must be allowed or not. + * @return 0 in case of success, errno value in case of failure + */ + OS_IMPORT static int setWritable(const std::wstring& aFile, bool aWritable); + + /** + * Returns the available size of the file system. + * + * @param[in] aFile: Absolute path of the file. + * @return Available size of File System, -1 if error during access or + * process does not have access to the file system. + */ + OS_IMPORT static long long availableSize(const std::wstring& aFile); + + /** + * Returns the Total Size of the File System. + * + * @param[in] aFile: Absolute path of the file. + * @return Total Size of File System, -1 if error during access or + * process does not have access to the file system. + */ + OS_IMPORT static long long totalSize(const std::wstring& aFile); + + /** + * Returns the Used Size of the File System. + * + * @param[in] aFile: Absolute path of the file. + * @return Used Size in File System, -1 if error during access or + * process does not have access to the file system. + */ + OS_IMPORT static long long usedSize(const std::wstring& aFile); + + /** + * Checks if the File/Directory is hidden. + * In Linux, it is simply a check to see if the File begins with a "." + * In File Systems that rely on attributes to differentiate between hidden + * and visible files, the method checks those attributes. + * + * @param[in] aFile: Absolute path of the file. + * @return true of the file is hidden, false otherwise + */ + OS_IMPORT static bool isHidden(const std::wstring& aPath); + + /** + * Lists the roots of the File System. Roots are synonymous to mount points + * in Linux file system. + * + * @return string containing the roots. Delimited by "*" Character. + * The implementation using this is responsible to split it into + * multiple tokens. + */ + OS_IMPORT static std::wstring listRoots(); + + /** + * Method to get the contents of a Directory. By default, hidden files are + * also included. + * + * @param[in] dirName: Directory name with path included. + * @return string of names delimited by "*" + */ + OS_IMPORT static std::wstring getDirContents(const std::wstring& aDirName); + + /** + * Method to get the contents of a Directory. + * + * @param[in] aDirName: Directory name with path included. + * @param[in] aIncludeHidden: specifies if hidden files must be included + * @return string of names delimited by "*" + */ + OS_IMPORT static std::wstring getDirContents(const std::wstring& aDirName, const bool aIncludeHidden); + + /** + * Method to get the contents of a Directory. + * + * @param[in] aDirName: Directory name with path included. + * @return a list of strings containing the names of the contents + */ + OS_IMPORT static std::list getDirContentsList(const std::wstring& aDirName); + + /** + * Returns the size of the Directory + * + * @param[in] aDirName: Directory name with complete path + * @param[in] aIncludeSubDirs: To specify if the contents of the + * sub-directories also needs to be taken while calculating the + * size of the file. + * @return the size of the Directory + */ + OS_IMPORT static long getDirSize(const std::wstring& aDirName, const bool aIncludeSubDirs); + + /** + * Creates a directory tree specified. + * + * @param[in] aDirPath: Directory name with complete path + * @return 0 on success, -1 on failure + */ + OS_IMPORT static int makeDirAll(const std::wstring& aDirPath); + +}; //end class + +} //end namespace fileutils +} //end namespace java + +#endif // FILEUTILITIES_H