Skip to content
This repository has been archived by the owner on Mar 21, 2023. It is now read-only.

Commit

Permalink
Merge pull request #12 from akihiro0105/develop
Browse files Browse the repository at this point in the history
Develop
  • Loading branch information
akihiro0105 committed Jan 13, 2019
2 parents e096a47 + 7954cbe commit 9807b44
Show file tree
Hide file tree
Showing 41 changed files with 1,019 additions and 1,673 deletions.
155 changes: 68 additions & 87 deletions Assets/HoloLensModule/Environment/Scripts/FileIOControl.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,155 +6,136 @@
using System.Threading;
#if WINDOWS_UWP
using System.Threading.Tasks;
#elif UNITY_EDITOR || UNITY_STANDALONE
#endif

namespace HoloLensModule.Environment
{
/// <summary>
/// ファイル入出力に関するクラス
/// </summary>
public class FileIOControl
{
// Path
/// <summary>
/// ローカルフォルダパスを取得
/// </summary>
public static string LocalFolderPath
{
get
{
var path = Application.dataPath + "\\..\\Local";
#if WINDOWS_UWP
path = Application.persistentDataPath;
#elif UNITY_EDITOR || UNITY_STANDALONE
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
var path = Application.persistentDataPath;
#if UNITY_EDITOR || UNITY_STANDALONE
path = Application.dataPath + "\\..\\Local";
if (!Directory.Exists(path)) Directory.CreateDirectory(path);
#endif
return path;
}
}
public static string StreamingAssetsFolderPath
{
get
{
return Application.streamingAssetsPath;
}
}

// Read File
/// <summary>
/// テキストデータを指定ファイルから読み込み
/// </summary>
/// <param name="name"></param>
/// <param name="action"></param>
/// <returns></returns>
public static IEnumerator ReadTextFile(string name,Action<string> action)
{
string data = null;
#if WINDOWS_UWP
Task task = Task.Run(() =>
if (File.Exists(name))
{
if (File.Exists(name))
{
data = File.ReadAllText(name);
}
});
#if WINDOWS_UWP
var task = Task.Run(() =>data = File.ReadAllText(name));
yield return new WaitWhile(() => task.IsCompleted == false);
#elif UNITY_EDITOR || UNITY_STANDALONE
Thread thread = new Thread(() => {
if (File.Exists(name))
{
data = File.ReadAllText(name);
}
});
thread.Start();
yield return new WaitWhile(() => thread.IsAlive == true);
#else
var thread = new Thread(() => data = File.ReadAllText(name));
thread.Start();
yield return new WaitWhile(() => thread.IsAlive == true);
#endif
yield return null;
}
action.Invoke(data);
}

/// <summary>
/// バイナリデータを指定ファイルから読み込み
/// </summary>
/// <param name="name"></param>
/// <param name="action"></param>
/// <returns></returns>
public static IEnumerator ReadBytesFile(string name, Action<byte[]> action)
{
byte[] data = null;
if (File.Exists(name))
{
#if WINDOWS_UWP
Task task = Task.Run(() =>
{
if (File.Exists(name))
{
data = File.ReadAllBytes(name);
}
});
var task = Task.Run(() =>data = File.ReadAllBytes(name));
yield return new WaitWhile(() => task.IsCompleted == false);
#elif UNITY_EDITOR || UNITY_STANDALONE
Thread thread = new Thread(() => {
if (File.Exists(name))
{
data = File.ReadAllBytes(name);
}
});
thread.Start();
yield return new WaitWhile(() => thread.IsAlive == true);
#else
var thread = new Thread(() => data = File.ReadAllBytes(name));
thread.Start();
yield return new WaitWhile(() => thread.IsAlive == true);
#endif
yield return null;
}
action.Invoke(data);
}

// Write
/// <summary>
/// テキストデータを指定ファイルに保存
/// </summary>
/// <param name="name"></param>
/// <param name="data"></param>
/// <param name="action"></param>
/// <returns></returns>
public static IEnumerator WriteTextFile(string name,string data,Action action = null)
{
#if WINDOWS_UWP
Task task = Task.Run(() =>
{
if (File.Exists(name))
{
File.WriteAllText(name, data);
}
});
var task = Task.Run(() =>File.WriteAllText(name, data));
yield return new WaitWhile(() => task.IsCompleted == false);
#elif UNITY_EDITOR || UNITY_STANDALONE
Thread thread = new Thread(() => {
File.WriteAllText(name, data);
});
#else
var thread = new Thread(() => File.WriteAllText(name, data));
thread.Start();
yield return new WaitWhile(() => thread.IsAlive == true);
#endif
yield return null;
if (action != null) action.Invoke();
}

/// <summary>
/// テキストデータを指定ファイルに追記保存
/// </summary>
/// <param name="name"></param>
/// <param name="data"></param>
/// <param name="action"></param>
/// <returns></returns>
public static IEnumerator WriteAppendTextFile(string name, string data, Action action = null)
{
#if WINDOWS_UWP
Task task = Task.Run(() =>
{
if (File.Exists(name))
{
File.AppendAllText(name, data);
}
});
var task = Task.Run(() =>File.AppendAllText(name, data));
yield return new WaitWhile(() => task.IsCompleted == false);
#elif UNITY_EDITOR || UNITY_STANDALONE
Thread thread = new Thread(() => {
File.AppendAllText(name, data);
});
#else
var thread = new Thread(() => File.AppendAllText(name, data));
thread.Start();
yield return new WaitWhile(() => thread.IsAlive == true);
#endif
yield return null;
if (action != null) action.Invoke();
}

/// <summary>
/// バイナリデータを指定ファイルに保存
/// </summary>
/// <param name="name"></param>
/// <param name="data"></param>
/// <param name="action"></param>
/// <returns></returns>
public static IEnumerator WriteBytesFile(string name, byte[] data, Action action = null)
{
#if WINDOWS_UWP
Task task = Task.Run(() =>
{
if (File.Exists(name))
{
File.WriteAllBytes(name, data);
}
});
var task = Task.Run(() =>File.WriteAllBytes(name, data));
yield return new WaitWhile(() => task.IsCompleted == false);
#elif UNITY_EDITOR || UNITY_STANDALONE
Thread thread = new Thread(()=> {
File.WriteAllBytes(name, data);
});
#else
var thread = new Thread(() => File.WriteAllBytes(name, data));
thread.Start();
yield return new WaitWhile(() => thread.IsAlive == true);
#endif
yield return null;
if (action != null) action.Invoke();
}
}
Expand Down
Loading

0 comments on commit 9807b44

Please sign in to comment.