X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=na-get-lib%2FNaGet%2FUtils.cs;fp=na-get-lib%2FNaGet%2FUtils.cs;h=1c240cfe85772ed1b721674d3a786fe724ac77e8;hb=e1480838fa40f2c1851876fa21729d6ca32f3206;hp=7cdc07bd1501f9bb4c90f9dc2b8d0bb290604d42;hpb=c3ffb4fa0f579e9231df8ffc7cc19e35f7a9c692;p=applistation%2FAppliStation.git diff --git a/na-get-lib/NaGet/Utils.cs b/na-get-lib/NaGet/Utils.cs index 7cdc07b..1c240cf 100644 --- a/na-get-lib/NaGet/Utils.cs +++ b/na-get-lib/NaGet/Utils.cs @@ -174,17 +174,23 @@ namespace NaGet /// 対象のurl public static string Url2filename(Uri url) { - string filename = Path.GetFileName(System.Web.HttpUtility.UrlDecode(url.ToString(), Encoding.UTF8)); + string filename = Path.GetFileName(System.Web.HttpUtility.UrlDecode(url.AbsolutePath, Encoding.UTF8)); + + if (string.IsNullOrEmpty(filename)) { + filename = Path.GetFileName(System.Web.HttpUtility.UrlDecode(url.ToString(), Encoding.UTF8)); + } int pos; if ((pos = filename.IndexOfAny(Path.GetInvalidFileNameChars())) >= 0) { // 不正な文字が含まれているならば、それ以降を削除 filename = filename.Substring(0, pos); - // そうしてしまったら文字の内容がまったくなくなってしまったら、現在時刻から取得 - if (filename.Length == 0) { - filename = string.Format("tmp_{0}", DateTime.Now.Ticks); - } } + + // そうしてしまったら文字の内容がまったくなくなってしまったら、現在時刻から取得 + if (filename.Length == 0) { + filename = string.Format("tmp_{0}", DateTime.Now.Ticks); + } + return filename; //return UrlDecode(Path.GetFileName(url), Encoding.UTF8); }