////////////////////////////////////////////
指定したフォルダからの読み込み
////////////////////////////////////////////
--------------------------------------------
次に、内部データ領域の好きな場所を指定できるか調べた
参考にしたところ---------------------------------
string path = "";
using (AndroidJavaClass jcEnvironment = new AndroidJavaClass ("android.os.Environment"))
using (AndroidJavaObject joExDir = jcEnvironment.CallStatic
("getExternalStorageDirectory")) {
path = joExDir.Call("toString")+"/jp.co.cname.app/";
}
//フォルダがなければ作成
if (!Directory.Exists(path)) Directory.CreateDirectory(path);
//ファイル名入力
path += System.DateTime.Now.Ticks.ToString ()+".png";
---------------------------------
こんな感じにすればいいらしいので
path = joExDir.Call("toString");
のようにして、内部SD領域の先頭にして、
以下のようなスクリプトを書いて実験してみた。
----------------------------------------------
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.IO; // ←Directoryクラスを使うにはコレがいる
public class DispSDAllFilesScr : MonoBehaviour {
private string ErrorMessage = "";
private string allFiles = "";
private string path = "";
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
}
void OnGUI()
{
//解像度に依存せず
GUI.matrix = Matrix4x4.TRS(Vector3.zero, Quaternion.identity, new Vector3(Screen.width / 800f, Screen.height / 600f, 1f));
if (GUI.Button(new Rect(400, 5, 100, 40), "AllFiles"))
{
dispFiles2();
//dispFiles();
}
GUI.TextArea(new Rect(400, 50, 200, 200), allFiles);
GUI.TextArea(new Rect(400, 300, 200, 100), ErrorMessage);
}
void dispFiles()
{
allFiles = "全ファイル\n";
#if UNITY_EDITOR
string[] path_array = Directory.GetFiles(Application.dataPath, "*.*");
int array_num = path_array.Length;
for (int i = 0; i < array_num; i++)
{
string path = path_array[i];
string fileName = System.IO.Path.GetFileName(path);
allFiles += fileName + "\n";
}
#elif UNITY_ANDROID
//SDのパス 内部getExternalStorageDirectory
string path = "";
using (AndroidJavaClass jcEnvironment = new AndroidJavaClass ("android.os.Environment"))
using (AndroidJavaObject joExDir = jcEnvironment.CallStatic ("getExternalStorageDirectory")) {
path = joExDir.Call("toString"); //内部SDのpath それ以下の指定は/aaa/bbb/みたいにする
}
//フォルダがなければ作成
if (!Directory.Exists(path)) Directory.CreateDirectory(path);
//ファイル名入力
//SDのパス
ErrorMessage = "1";
string[] path_array = Directory.GetFiles(path, "*.*", System.IO.SearchOption.TopDirectoryOnly);
ErrorMessage = "2";
int array_num = path_array.Length;
if(array_num != 0){
for (int i = 0; i < array_num; i++)
{
string path2 = path_array[i]; //path_array[i]は、フルPathになっている
string fileName = System.IO.Path.GetFileName(path2);//ファイル名のみを
allFiles += path2+"\n";
}
}
ErrorMessage = path;
#endif
}
void dispFiles2()
{
allFiles = "フォルダ一覧\n";
#if UNITY_EDITOR
string[] path_array = Directory.GetFiles(Application.dataPath, "*.*");
int array_num = path_array.Length;
for (int i = 0; i < array_num; i++)
{
string path = path_array[i];
string fileName = System.IO.Path.GetFileName(path);
allFiles += fileName + "\n";
}
#elif UNITY_ANDROID
//path = Application.persistentDataPath;
//SDのパス 内部getExternalStorageDirectory
//Directory.GetFilesよりDirectory.EnumerateFilesを使った方がいいかも??
string path = "";
using (AndroidJavaClass jcEnvironment = new AndroidJavaClass ("android.os.Environment"))
using (AndroidJavaObject joExDir = jcEnvironment.CallStatic ("getExternalStorageDirectory")) {
path = joExDir.Call("toString");
}
//フォルダがなければ作成
if (!Directory.Exists(path)) Directory.CreateDirectory(path);
//ファイル名入力
//path += System.DateTime.Now.Ticks.ToString ()+".png";
//SDのパス
ErrorMessage = "1";
string[] path_array = Directory.GetDirectories(path, "*.*", System.IO.SearchOption.TopDirectoryOnly);
ErrorMessage = "2";
int array_num = path_array.Length;
if(array_num != 0){
for (int i = 0; i < array_num; i++)
{
string path2 = path_array[i]; //path_array[i]は、フルPathになっている
//string fileName = System.IO.Path.GetFileName(path2);//ファイル名のみを
allFiles += path2+"\n";
}
}
ErrorMessage = path;
#endif
}
}
----------------------------------------------
- 関連記事
-
YouTubeで動画を定期的に出しています。ご視聴いただけると嬉しいです。
Reon Labo
- 2017/03/31(金) 15:05:40|
- Unity
-
| トラックバック:0
-
| コメント:0