/*---------------------------------------------------------------------------* Project: Horizon File: fs_FileSystem.h Copyright (C)2009 Nintendo Co., Ltd. All rights reserved. These coded instructions, statements, and computer programs contain proprietary information of Nintendo of America Inc. and/or Nintendo Company Ltd., and are protected by Federal copyright law. They may not be disclosed to third parties or copied or duplicated in any form, in whole or in part, without the prior written consent of Nintendo. $Rev: 32512 $ *---------------------------------------------------------------------------*/ #ifndef NN_FS_FS_FILESYSTEM_H_ #define NN_FS_FS_FILESYSTEM_H_ #include #include #include #include #include #include /*! @file @brief ファイルおよびディレクトリの作成・削除・リネーム API の宣言 */ namespace nn { namespace fs { //---------------------------------------- //! @name ファイル・ディレクトリ操作 //@{ /*! @brief ファイルを削除します。 この関数は処理の結果を返さないため、アプリケーション側でエラーハンドリングを行なうことができません。 rom アーカイブ以外では @ref TryDeleteFile を使用してください。 @param[in] pathName 削除するファイルのパス */ void DeleteFile( const wchar_t* pathName ); /*! @brief ファイルを削除します。 この関数では、内部でパス名をマルチバイト文字列からワイド文字列に変換するために、 大きくスタック上にバッファを取るので、スタックの大きさには注意してください。 この関数は処理の結果を返さないため、アプリケーション側でエラーハンドリングを行なうことができません。 rom アーカイブ以外では @ref TryDeleteFile を使用してください。 @param[in] pathName 削除するファイルのパス */ void DeleteFile( const char* pathName ); /*! @brief ファイルを削除します。 ファイルを削除する途中でエラーが発生した場合はそのエラーを返します。 @param[in] pathName 削除するファイルのパス @return 処理の結果を返します。 */ Result TryDeleteFile( const wchar_t* pathName ); /*! @brief ファイルを削除します。 ファイルを削除する途中でエラーが発生した場合はそのエラーを返します。 この関数では、内部でパス名をマルチバイト文字列からワイド文字列に変換するために、 大きくスタック上にバッファを取るので、スタックの大きさには注意してください。 @param[in] pathName 削除するファイルのパス @return 処理の結果を返します。 */ Result TryDeleteFile( const char* pathName ); /*! @brief ファイルをリネームします。 この関数は処理の結果を返さないため、アプリケーション側でエラーハンドリングを行なうことができません。 rom アーカイブ以外では @ref TryRenameFile を使用してください。 @param[in] currentPath リネーム元のパス @param[in] newPath リネーム先のパス */ void RenameFile( const wchar_t* currentPath, const wchar_t* newPath); /*! @brief ファイルをリネームします。 この関数では、内部でパス名をマルチバイト文字列からワイド文字列に変換するために、 大きくスタック上にバッファを取るので、スタックの大きさには注意してください。 この関数は処理の結果を返さないため、アプリケーション側でエラーハンドリングを行なうことができません。 rom アーカイブ以外では @ref TryRenameFile を使用してください。 @param[in] currentPath リネーム元のパス @param[in] newPath リネーム先のパス */ void RenameFile( const char* currentPath, const char* newPath); /*! @brief ファイルをリネームします。 ファイルをリネームする途中でエラーが発生した場合はそのエラーを返します。 @param[in] currentPath リネーム元のパス @param[in] newPath リネーム先のパス @return 処理の結果を返します。 */ Result TryRenameFile( const wchar_t* currentPath, const wchar_t* newPath); /*! @brief ファイルをリネームします。 ファイルをリネームする途中でエラーが発生した場合はそのエラーを返します。 この関数では、内部でパス名をマルチバイト文字列からワイド文字列に変換するために、 大きくスタック上にバッファを取るので、スタックの大きさには注意してください。 @param[in] currentPath リネーム元のパス @param[in] newPath リネーム先のパス @return 処理の結果を返します。 */ Result TryRenameFile( const char* currentPath, const char* newPath); /*! @brief ディレクトリを削除します。 この関数は処理の結果を返さないため、アプリケーション側でエラーハンドリングを行なうことができません。 rom アーカイブ以外では @ref TryDeleteDirectory を使用してください。 @param[in] pathName 削除するディレクトリのパス */ void DeleteDirectory( const wchar_t* pathName ); /*! @brief ディレクトリを削除します。 この関数では、内部でパス名をマルチバイト文字列からワイド文字列に変換するために、 大きくスタック上にバッファを取るので、スタックの大きさには注意してください。 この関数は処理の結果を返さないため、アプリケーション側でエラーハンドリングを行なうことができません。 rom アーカイブ以外では @ref TryDeleteDirectory を使用してください。 @param[in] pathName 削除するディレクトリのパス */ void DeleteDirectory( const char* pathName ); /*! @brief ディレクトリを削除します。 ディレクトリを削除する途中でエラーが発生した場合はそのエラーを返します。 @param[in] pathName 削除するディレクトリのパス @return 処理の結果を返します。 */ Result TryDeleteDirectory( const wchar_t* pathName ); /*! @brief ディレクトリを削除します。 ディレクトリを削除する途中でエラーが発生した場合はそのエラーを返します。 この関数では、内部でパス名をマルチバイト文字列からワイド文字列に変換するために、 大きくスタック上にバッファを取るので、スタックの大きさには注意してください。 @param[in] pathName 削除するディレクトリのパス @return 処理の結果を返します。 */ Result TryDeleteDirectory( const char* pathName ); /*! @brief ディレクトリを再帰的に削除します。 ディレクトリを削除する途中でエラーが発生した場合はそのエラーを返します。 @param[in] pathName 削除するディレクトリのパス @return 処理の結果を返します。 */ Result TryDeleteDirectoryRecursively( const wchar_t* pathName ); /*! @brief ディレクトリを再帰的に削除します。 ディレクトリを削除する途中でエラーが発生した場合はそのエラーを返します。 この関数では、内部でパス名をマルチバイト文字列からワイド文字列に変換するために、 大きくスタック上にバッファを取るので、スタックの大きさには注意してください。 @param[in] pathName 削除するディレクトリのパス @return 処理の結果を返します。 */ Result TryDeleteDirectoryRecursively( const char* pathName ); /*! @brief ファイルを作成します。 この関数は処理の結果を返さないため、アプリケーション側でエラーハンドリングを行なうことができません。 rom アーカイブ以外では @ref TryCreateFile を使用してください。 @param[in] pathName 作成するファイルのパス @param[in] size 作成するファイルのサイズ */ void CreateFile( const wchar_t* pathName, s64 size ); /*! @brief ファイルを作成します。 この関数では、内部でパス名をマルチバイト文字列からワイド文字列に変換するために、 大きくスタック上にバッファを取るので、スタックの大きさには注意してください。 この関数は処理の結果を返さないため、アプリケーション側でエラーハンドリングを行なうことができません。 rom アーカイブ以外では @ref TryCreateFile を使用してください。 @param[in] pathName 作成するファイルのパス @param[in] size 作成するファイルのサイズ */ void CreateFile( const char* pathName, s64 size ); /*! @brief ファイルを作成します。 ファイルを作成する途中でエラーが発生した場合はそのエラーを返します。 @param[in] pathName 作成するファイルのパス @param[in] size 作成するファイルのサイズ @return 処理の結果を返します。 */ Result TryCreateFile( const wchar_t* pathName, s64 size ); /*! @brief ファイルを作成します。 ファイルを作成する途中でエラーが発生した場合はそのエラーを返します。 この関数では、内部でパス名をマルチバイト文字列からワイド文字列に変換するために、 大きくスタック上にバッファを取るので、スタックの大きさには注意してください。 @param[in] pathName 作成するファイルのパス @param[in] size 作成するファイルのサイズ @return 処理の結果を返します。 */ Result TryCreateFile( const char* pathName, s64 size ); /*! @brief ディレクトリを作成します。 この関数は処理の結果を返さないため、アプリケーション側でエラーハンドリングを行なうことができません。 rom アーカイブ以外では @ref TryCreateDirectory を使用してください。 @param[in] pathName 作成するディレクトリのパス */ void CreateDirectory( const wchar_t* pathName ); /*! @brief ディレクトリを作成します。 この関数では、内部でパス名をマルチバイト文字列からワイド文字列に変換するために、 大きくスタック上にバッファを取るので、スタックの大きさには注意してください。 この関数は処理の結果を返さないため、アプリケーション側でエラーハンドリングを行なうことができません。 rom アーカイブ以外では @ref TryCreateDirectory を使用してください。 @param[in] pathName 作成するディレクトリのパス */ void CreateDirectory( const char* pathName ); /*! @brief ディレクトリを作成します。 ディレクトリを作成する途中でエラーが発生した場合はそのエラーを返します。 @param[in] pathName 作成するディレクトリのパス @return 処理の結果を返します。 */ Result TryCreateDirectory( const wchar_t* pathName ); /*! @brief ディレクトリを作成します。 ディレクトリを作成する途中でエラーが発生した場合はそのエラーを返します。 この関数では、内部でパス名をマルチバイト文字列からワイド文字列に変換するために、 大きくスタック上にバッファを取るので、スタックの大きさには注意してください。 @param[in] pathName 作成するディレクトリのパス @return 処理の結果を返します。 */ Result TryCreateDirectory( const char* pathName ); /*! @brief ディレクトリをリネームします。 この関数は処理の結果を返さないため、アプリケーション側でエラーハンドリングを行なうことができません。 rom アーカイブ以外では @ref TryRenameDirectory を使用してください。 @param[in] currentPath リネーム元のパス @param[in] newPath リネーム先のパス */ void RenameDirectory( const wchar_t* currentPath, const wchar_t* newPath); /*! @brief ディレクトリをリネームします。 この関数では、内部でパス名をマルチバイト文字列からワイド文字列に変換するために、 大きくスタック上にバッファを取るので、スタックの大きさには注意してください。 この関数は処理の結果を返さないため、アプリケーション側でエラーハンドリングを行なうことができません。 rom アーカイブ以外では @ref TryRenameDirectory を使用してください。 @param[in] currentPath リネーム元のパス @param[in] newPath リネーム先のパス */ void RenameDirectory( const char* currentPath, const char* newPath); /*! @brief ディレクトリをリネームします。 ディレクトリをリネームする途中でエラーが発生した場合はそのエラーを返します。 @param[in] currentPath リネーム元のパス @param[in] newPath リネーム先のパス @return 処理の結果を返します。 */ Result TryRenameDirectory( const wchar_t* currentPath, const wchar_t* newPath); /*! @brief ディレクトリをリネームします。 ディレクトリをリネームする途中でエラーが発生した場合はそのエラーを返します。 この関数では、内部でパス名をマルチバイト文字列からワイド文字列に変換するために、 大きくスタック上にバッファを取るので、スタックの大きさには注意してください。 @param[in] currentPath リネーム元のパス @param[in] newPath リネーム先のパス @return 処理の結果を返します。 */ Result TryRenameDirectory( const char* currentPath, const char* newPath); //@} inline void DeleteFile(const wchar_t* pathName) { detail::GetGlobalFileSystemBase().DeleteFile(pathName); } inline void DeleteFile(const char* pathName) { detail::GetGlobalFileSystemBase().DeleteFile(pathName); } inline Result TryDeleteFile(const wchar_t* pathName) { return detail::GetGlobalFileSystemBase().TryDeleteFile(pathName); } inline Result TryDeleteFile(const char* pathName) { return detail::GetGlobalFileSystemBase().TryDeleteFile(pathName); } inline void RenameFile( const wchar_t* currentPath, const wchar_t* newPath) { detail::GetGlobalFileSystemBase().RenameFile(currentPath, newPath); } inline void RenameFile( const char* currentPath, const char* newPath) { detail::GetGlobalFileSystemBase().RenameFile(currentPath, newPath); } inline Result TryRenameFile( const wchar_t* currentPath, const wchar_t* newPath) { return detail::GetGlobalFileSystemBase().TryRenameFile(currentPath, newPath); } inline Result TryRenameFile( const char* currentPath, const char* newPath) { return detail::GetGlobalFileSystemBase().TryRenameFile(currentPath, newPath); } inline void DeleteDirectory(const wchar_t* pathName) { detail::GetGlobalFileSystemBase().DeleteDirectory(pathName); } inline void DeleteDirectory(const char* pathName) { detail::GetGlobalFileSystemBase().DeleteDirectory(pathName); } inline void DeleteDirectoryRecursively(const wchar_t* pathName) { detail::GetGlobalFileSystemBase().DeleteDirectoryRecursively(pathName); } inline void DeleteDirectoryRecursively(const char* pathName) { detail::GetGlobalFileSystemBase().DeleteDirectoryRecursively(pathName); } inline Result TryDeleteDirectory(const wchar_t* pathName) { return detail::GetGlobalFileSystemBase().TryDeleteDirectory(pathName); } inline Result TryDeleteDirectory(const char* pathName) { return detail::GetGlobalFileSystemBase().TryDeleteDirectory(pathName); } inline Result TryDeleteDirectoryRecursively(const wchar_t* pathName) { return detail::GetGlobalFileSystemBase().TryDeleteDirectoryRecursively(pathName); } inline Result TryDeleteDirectoryRecursively(const char* pathName) { return detail::GetGlobalFileSystemBase().TryDeleteDirectoryRecursively(pathName); } inline void CreateFile(const wchar_t* pathName, s64 size) { detail::GetGlobalFileSystemBase().CreateFile(pathName, size); } inline void CreateFile(const char* pathName, s64 size) { detail::GetGlobalFileSystemBase().CreateFile(pathName, size); } inline Result TryCreateFile(const wchar_t* pathName, s64 size) { return detail::GetGlobalFileSystemBase().TryCreateFile(pathName, size); } inline Result TryCreateFile(const char* pathName, s64 size) { return detail::GetGlobalFileSystemBase().TryCreateFile(pathName, size); } inline void CreateDirectory(const wchar_t* pathName) { detail::GetGlobalFileSystemBase().CreateDirectory(pathName); } inline void CreateDirectory(const char* pathName) { detail::GetGlobalFileSystemBase().CreateDirectory(pathName); } inline Result TryCreateDirectory(const wchar_t* pathName) { return detail::GetGlobalFileSystemBase().TryCreateDirectory(pathName); } inline Result TryCreateDirectory(const char* pathName) { return detail::GetGlobalFileSystemBase().TryCreateDirectory(pathName); } inline void RenameDirectory( const wchar_t* currentPath, const wchar_t* newPath) { detail::GetGlobalFileSystemBase().RenameDirectory(currentPath, newPath); } inline void RenameDirectory( const char* currentPath, const char* newPath) { detail::GetGlobalFileSystemBase().RenameDirectory(currentPath, newPath); } inline Result TryRenameDirectory( const wchar_t* currentPath, const wchar_t* newPath) { return detail::GetGlobalFileSystemBase().TryRenameDirectory(currentPath, newPath); } inline Result TryRenameDirectory( const char* currentPath, const char* newPath) { return detail::GetGlobalFileSystemBase().TryRenameDirectory(currentPath, newPath); } } } #endif // ifndef NN_FS_FS_FILESYSTEM_H_