- Home /
Xml Loading Issue
I'm having trouble loading an xml file. If I print its .name or try a ToString(), it comes up as null no matter what I do. The file path and name is correct, as it finds the files, but it just can't seem to load them.
DirectoryInfo dir = new DirectoryInfo("Assets\\Resources");
FileInfo[] info = dir.GetFiles(filePath + "*.xml");
TextAsset text = (TextAsset)Resources.Load(info[0].Name, typeof(TextAsset));
print (info[0].Name); //returns the correct file name that it found in line 2
print (text); //returns null
Answer by whydoidoit · Aug 02, 2013 at 10:29 AM
That's not how you use Resources. Resources folders are all compiled into one location (joined together, but maintaining subfolders) and you need to know the name of the file in there, you can't easily list the contents. Resources are no longer individual files when the application is built (in the Editor you can access things that way, but not in a build).
So either - you have a real file (which is not in a Resources folder, they aren't files any longer) or you have a resource to load.
You also load Resources without the extension.
So, if you know the name:
var text = Resources.Load("someTextAsset", typeof(TextAsset)) as TextAsset;
If you actually have a file somewhere:
FileInfo[] info = dir.GetFiles("SomeDirectory/" + "*.xml");
string text = File.ReadAllText(info[0].FullName);
One way if you want to use Resources is to build your own asset that has all of the relevant file names in it.
That's spot on! Thanks for your help. (Sorry for the late response, haven't been able to touch this for a little while)
This was an extremely well said, simply put explanation of this. Will definitely help me out in the future. +1!
Your answer

Follow this Question
Related Questions
Load xml from resources (uri is too long) 1 Answer
Loading XML asset after build 0 Answers
NullReferenceException when trying to load XML 1 Answer
How to check the path on Android 0 Answers
A node in a childnode? 1 Answer