/// <param name="url">対象のurl</param>\r
public static string Url2filename(Uri url)\r
{\r
- string filename = Path.GetFileName(System.Web.HttpUtility.UrlDecode(url.ToString(), Encoding.UTF8));\r
+ string filename = Path.GetFileName(System.Web.HttpUtility.UrlDecode(url.AbsolutePath, Encoding.UTF8));\r
+ \r
+ if (string.IsNullOrEmpty(filename)) {\r
+ filename = Path.GetFileName(System.Web.HttpUtility.UrlDecode(url.ToString(), Encoding.UTF8));\r
+ }\r
\r
int pos;\r
if ((pos = filename.IndexOfAny(Path.GetInvalidFileNameChars())) >= 0) {\r
// 不正な文字が含まれているならば、それ以降を削除\r
filename = filename.Substring(0, pos);\r
- // そうしてしまったら文字の内容がまったくなくなってしまったら、現在時刻から取得\r
- if (filename.Length == 0) {\r
- filename = string.Format("tmp_{0}", DateTime.Now.Ticks);\r
- }\r
}\r
+ \r
+ // そうしてしまったら文字の内容がまったくなくなってしまったら、現在時刻から取得\r
+ if (filename.Length == 0) {\r
+ filename = string.Format("tmp_{0}", DateTime.Now.Ticks);\r
+ }\r
+ \r
return filename;\r
//return UrlDecode(Path.GetFileName(url), Encoding.UTF8);\r
}\r