title: File.ReadAllBytes returns an empty array
body: <p>I'm writing a game in C# in Unity 3D (.NET 2.0). To read external files I use <strong>File.ReadAllBytes</strong>. However, today I encountered a problem one of the files that is clearly not an empty file no corrupted is not read properly - ReadAllBytes returns a byte array with zero elements. The file I'm trying to read is an MP3 file and I could not see anything wrong with it. I can load it in FMODEx, I can play it with a media player, yet ReadAllBytes returns zero. This only happens on that particular file but I'm sure that if it happens with it, then there might be a lot of other files that won't get read.</p>
  
  <p>What can be causing <strong>File.ReadAllBytes</strong> to malfunction like that and what is the best workaround for this thing ? (eg. if an empty array is returned, read the file in another manner).</p>
  
  <p>Added Code as poster cannot yet:</p>
  
  <pre><code>public void LoadFrom(string filePath) 
  {
      StopTransfer();
      byte[] bytes = null;
      if (File.Exists(filePath)) 
      {
          path = filePath;
          name = Path.GetFileNameWithoutExtension(filePath);
          extension = Path.GetExtension(filePath);
          bytes = File.ReadAllBytes(filePath);
          if (bytes.Length == 0) bytes = ReadAllBytes(filePath);
          if (bytes.Length == 0) error = "Corrupt file";
          fullFile = bytes;
      } 
      else 
      {
          fullFile = null;
          error = "Not found";
      }
  }
  </code></pre>