* Return something more sensible if a file isn't found
0.6.6-post-fixes
Justin Clarke Casey 2009-05-19 19:41:01 +00:00
parent 14f0d5e77f
commit 01ca3a91ad
1 changed files with 14 additions and 12 deletions

View File

@ -422,8 +422,6 @@ namespace OpenSim.Region.CoreModules.World.Archiver
/// Resolve path to a working FileStream /// Resolve path to a working FileStream
/// </summary> /// </summary>
private Stream GetStream(string path) private Stream GetStream(string path)
{
try
{ {
if (File.Exists(path)) if (File.Exists(path))
{ {
@ -431,7 +429,9 @@ namespace OpenSim.Region.CoreModules.World.Archiver
} }
else else
{ {
Uri uri = new Uri(path); // throw exception if not valid URI try
{
Uri uri = new Uri(path);
if (uri.Scheme == "file") if (uri.Scheme == "file")
{ {
return new FileStream(uri.AbsolutePath, FileMode.Open, FileAccess.Read); return new FileStream(uri.AbsolutePath, FileMode.Open, FileAccess.Read);
@ -446,16 +446,18 @@ namespace OpenSim.Region.CoreModules.World.Archiver
return URIFetch(uri); return URIFetch(uri);
} }
} }
} catch (UriFormatException)
catch (Exception e)
{ {
throw new Exception(String.Format("Unable to create file input stream for {0}: {1}", path, e.Message)); // In many cases the user will put in a plain old filename that cannot be found so assume that
// this is the problem rather than confusing the issue with a UriFormatException
throw new Exception(String.Format("Cannot find file {0}", path));
}
} }
} }
private static Stream URIFetch(Uri uri) private static Stream URIFetch(Uri uri)
{ {
HttpWebRequest request = (HttpWebRequest) WebRequest.Create(uri); HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);
// request.Credentials = credentials; // request.Credentials = credentials;