javacommons/fileutils/inc/fileutilities.h
changeset 21 2a9601315dfc
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javacommons/fileutils/inc/fileutilities.h	Mon May 03 12:27:20 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 <list>
+#include <string>
+
+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<std::wstring> 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