読者です 読者をやめる 読者になる 読者になる

Play Siv3D!

ゲームとメディアアートのための C++ ライブラリ「Siv3D」

ファイルとディレクトリ

ファイルとディレクトリ

Siv3D June 2015 v2

ファイルまたはディレクトリが存在するかを調べる

# include <Siv3D.hpp>

void Main()
{
	Println(FileSystem::Exists(L"engine/"));

	Println(FileSystem::Exists(L"Example/"));

	Println(FileSystem::Exists(L"Example2/"));

	Println(FileSystem::Exists(L"Example/Windmill.png"));

	Println(FileSystem::Exists(L"Example/Windmill2.png"));

	WaitKey();
}


指定したパスが存在するディレクトリであるかを調べる

# include <Siv3D.hpp>

void Main()
{
	Println(FileSystem::IsDirectory(L"engine/"));

	Println(FileSystem::IsDirectory(L"Example/"));

	Println(FileSystem::IsDirectory(L"Example2/"));

	Println(FileSystem::IsDirectory(L"Example/Windmill.png"));

	WaitKey();
}


指定したパスが存在するファイルであるかを調べる

# include <Siv3D.hpp>

void Main()
{
	Println(FileSystem::IsFile(L"engine/"));

	Println(FileSystem::IsFile(L"Example/"));

	Println(FileSystem::IsFile(L"Example2/Windmill.png"));

	Println(FileSystem::IsFile(L"Example/Windmill.png"));

	WaitKey();
}


指定したファイルかディレクトリが空であるかを調べる

# include <Siv3D.hpp>

void Main()
{
	Println(FileSystem::IsEmpty(L"Example/"));

	Println(FileSystem::IsEmpty(L"Example2/"));

	Println(FileSystem::IsEmpty(L"Example/Windmill.png"));

	FileSystem::CreateDirectories(L"test-empty/");

	BinaryWriter(L"test-empty.bin");

	Println(FileSystem::IsEmpty(L"test-empty/"));

	Println(FileSystem::IsEmpty(L"test-empty.bin"));

	WaitKey();
}


指定したファイルかディレクトリのサイズを調べる

# include <Siv3D.hpp>

void Main()
{
	Println(FileSystem::Size(L"Example/"));

	Println(FileSystem::Size(L"Example2/"));

	Println(FileSystem::Size(L"Example/Windmill.png"));

	Println(FileSystem::Size(L"Example/Windmill2.png"));

	WaitKey();
}


ファイルまたはディレクトリの作成日時を調べる

# include <Siv3D.hpp>

void Main()
{
	Println(FileSystem::CreationTime(L"Example/"));

	Println(FileSystem::CreationTime(L"Example2/"));

	Println(FileSystem::CreationTime(L"Example/Windmill.png"));

	Println(FileSystem::CreationTime(L"Example/Windmill2.png"));

	WaitKey();
}


ファイルまたはディレクトリの更新日時を調べる

# include <Siv3D.hpp>

void Main()
{
	Println(FileSystem::WriteTime(L"Example/"));

	Println(FileSystem::WriteTime(L"Example2/"));

	Println(FileSystem::WriteTime(L"Example/Windmill.png"));

	Println(FileSystem::WriteTime(L"Example/Windmill2.png"));

	WaitKey();
}


ファイルまたはディレクトリのアクセス日時を調べる

# include <Siv3D.hpp>

void Main()
{
	Println(FileSystem::AccessTime(L"Example/"));

	Println(FileSystem::AccessTime(L"Example2/"));

	Println(FileSystem::AccessTime(L"Example/Windmill.png"));

	Println(FileSystem::AccessTime(L"Example/Windmill2.png"));

	WaitKey();
}


ファイルまたはディレクトリの中身をコピーする

# include <Siv3D.hpp>

void Main()
{
	Println(FileSystem::Copy(L"Example/", L"Example-copy/"));

	Println(FileSystem::Copy(L"Example/Windmill.png", L"Windmill-copy.png"));

	Println(FileSystem::Copy(L"Example/Windmill.png", L"Windmill-copy.png", CopyOption::Fail_if_exists));

	Println(FileSystem::Copy(L"Example/Windmill.png", L"Windmill-copy.png", CopyOption::Rename_if_exists));

	Println(FileSystem::Copy(L"Example/Windmill.png", L"Windmill-copy.png", CopyOption::Overwrite_if_exists));

	WaitKey();
}


ディレクトリを作成する

# include <Siv3D.hpp>

void Main()
{
	Println(FileSystem::CreateDirectories(L"test/aa/bb/"));

	WaitKey();
}


指定したパスまでの親ディレクトリを作成する

# include <Siv3D.hpp>

void Main()
{
	Println(FileSystem::CreateParentDirectories(L"test/bb/cc/something.png"));

	WaitKey();
}


ファイルまたはディレクトリを削除する
ごみ箱に送りたい場合は第 2 引数を true にする

# include <Siv3D.hpp>

void Main()
{
	FileSystem::Copy(L"Example/", L"Example-copy/");

	FileSystem::Copy(L"Example/Windmill.png", L"Windmill-copy.png");

	FileSystem::Copy(L"Example/Windmill.png", L"Windmill-copy2.png");


	FileSystem::Remove(L"Example-copy/");

	FileSystem::Remove(L"Windmill-copy.png");

	FileSystem::Remove(L"Windmill-copy2.png", true);

	WaitKey();
}


ディレクトリの中身を削除する

# include <Siv3D.hpp>

void Main()
{
	FileSystem::Copy(L"Example/", L"Example-copy/");

	FileSystem::RemoveContents(L"Example-copy/");

	WaitKey();
}


ファイルまたはディレクトリの名前を変更する

# include <Siv3D.hpp>

void Main()
{
	FileSystem::Copy(L"Example/", L"Example-copy/");

	FileSystem::Copy(L"Example/Windmill.png", L"copy.png");


	FileSystem::Rename(L"Example-copy/", L"test/a/");

	FileSystem::Rename(L"copy.png", L"test/copy2.png");
}


ファイルまたはディレクトリを移動する

# include <Siv3D.hpp>

void Main()
{
	FileSystem::Copy(L"Example/", L"Example-copy/");

	FileSystem::Copy(L"Example/Windmill.png", L"copy.png");


	FileSystem::Move(L"Example-copy/", L"test/b/");

	FileSystem::Move(L"copy.png", L"test/copy3.png");
}


ディレクトリの中身を移動する

# include <Siv3D.hpp>

void Main()
{
	FileSystem::Copy(L"Example/", L"Example-copy/");

	FileSystem::MoveContents(L"Example-copy/", L"Example-copy2/");

	WaitKey();
}


ファイルの拡張子を取得する

# include <Siv3D.hpp>

void Main()
{
	Println(FileSystem::Extension(L"Example/Windmill.png")); // png

	Println(FileSystem::Extension(L"Example/風の丘.mp3")); // mp3

	Println(FileSystem::Extension(L"Example/test.txt")); // txt

	WaitKey();
}


ファイルの拡張子を含んだ名前を取得する

# include <Siv3D.hpp>

void Main()
{
	Println(FileSystem::FileName(L"Example/Windmill.png")); // Windmill.png

	Println(FileSystem::FileName(L"Example/風の丘.mp3")); // 風の丘.mp3

	Println(FileSystem::FileName(L"Example/test.txt")); //test.txt

	WaitKey();
}


ファイルの拡張子を含まない名前を取得する

# include <Siv3D.hpp>

void Main()
{
	Println(FileSystem::BaseName(L"Example/Windmill.png")); // Windmill

	Println(FileSystem::BaseName(L"Example/風の丘.mp3")); // 風の丘

	Println(FileSystem::BaseName(L"Example/test.txt")); // test

	WaitKey();
}


親ディレクトリを取得する

# include <Siv3D.hpp>

void Main()
{
	Println(FileSystem::ParentPath(L"Example/"));

	Println(FileSystem::ParentPath(L"Example/Windmill.png"));

	Println(FileSystem::ParentPath(L"Example/shaders/Default.hlsl"));

	Println(FileSystem::ParentPath(L"./"));

	Println(FileSystem::ParentPath(L"../../"));

	WaitKey();
}


絶対パスを取得する

# include <Siv3D.hpp>

void Main()
{
	Println(FileSystem::FullPath(L"Example/));

	Println(FileSystem::FullPath(L"Example/Windmill.png"));

	Println(FileSystem::FullPath(L"Example/shaders/Default.hlsl"));

	Println(FileSystem::FullPath(L"./"));

	Println(FileSystem::FullPath(L"../../"));

	WaitKey();
}


指定したディレクトリにあるファイルとディレクトリの一覧を取得する

# include <Siv3D.hpp>

void Main()
{
	Array<FilePath> contents = FileSystem::DirectoryContents(L"Example");

	for (const auto& content : contents)
	{
		if (FileSystem::IsFile(content))
		{
			Println(FileSystem::FileName(content));
		}
	}

	WaitKey();
}


プログラムが起動したパスを取得する

# include <Siv3D.hpp>

void Main()
{
	Println(FileSystem::InitialPath());

	WaitKey();
}


カレントパスを取得する

# include <Siv3D.hpp>

void Main()
{
	Println(FileSystem::CurrentPath());

	WaitKey();
}


一時ファイル用のディレクトリのパスを取得する

# include <Siv3D.hpp>

void Main()
{
	Println(FileSystem::TemporaryPath());

	WaitKey();
}


一時ファイル用の固有なファイルパスを取得する

# include <Siv3D.hpp>

void Main()
{
	Println(FileSystem::UniquePath());

	WaitKey();
}


現在のアプリケーションの実行可能ファイル (.exe) の完全パスを取得する

# include <Siv3D.hpp>

void Main()
{
	Println(FileSystem::ModulePath());

	WaitKey();
}


ファイルがテキストファイルである場合、そのエンコーディング形式を調べる

# include <Siv3D.hpp>

void Main()
{
	const TextEncoding encoding = FileSystem::GetEncoding(L"Example/test.txt");

	if (encoding == TextEncoding::UTF8)
	{
		Println(L"UTF-8");
	}

	WaitKey();
}