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

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.