0

C# を使用して pdf ファイルを一覧表示していますが、ファイル名にパーセンテージ ( %) 記号が含まれているために開かないファイル%もあります。

DirectoryInfo directory = new DirectoryInfo("mydirectory/News Files");
FileSystemInfo[] files = directory.GetFiles("*.pdf");

var orderedFiles = files.OrderByDescending(f => f.Name);
foreach (FileSystemInfo file in orderedFiles)
{
    var link = new HyperLink { ID = file.FullName };
    link.NavigateUrl ="/News Files/"+ file.Name;
    link.Text = Regex.Split(file.Name, ".pdf")[0];
    link.CssClass = "linkpdf";
    newsListContainer.Controls.Add(link);
}

しかし、このような名前のコード ファイルではmy20%sign.pdf、ブラウザーで開かれません。

4

3 に答える 3

2

あなたは試すことができUri.EscapeUriStringます。

また、。を使用した文字列連結を使用してurls/filenamesを作成しないでください/Uri通常、クラスなどのUri/ファイル名解析ライブラリを使用する必要があります

于 2011-03-23T08:27:53.660 に答える
1

それは驚くべきことではありません。%20は、URLエンコードされた同等の値であるため、ブラウザによって「空白」として解釈されます。したがって、ファイルの名前が「My%20File.pdf」の場合、ブラウザはURLをデコードし、実際に「MyFile.pdf」を探します。

詳細については、次を確認してください:http ://www.w3schools.com/tags/ref_urlencode.asp

于 2011-03-23T08:30:00.883 に答える
0

%20あなたはと置き換えることができます" ". filename.replace("%20"," ");

于 2011-03-23T09:05:09.437 に答える