正在使用C#列出文件,无法打开%的文件
我使用C#列出pdf文件,但有些文件无法打开,因为它们的文件名上有百分比(正在使用C#列出文件,无法打开%的文件,c#,asp.net,file-listing,C#,Asp.net,File Listing,我使用C#列出pdf文件,但有些文件无法打开,因为它们的文件名上有百分比(%)符号,用户仍然希望文件名上显示%,但我无法使其工作 DirectoryInfo directory = new DirectoryInfo("mydirectory/News Files"); FileSystemInfo[] files = directory.GetFiles("*.pdf"); var orderedFiles = files.OrderByDescending(f => f.Name);
%
)符号,用户仍然希望文件名上显示%
,但我无法使其工作
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
的代码文件将无法在浏览器中打开。您可以尝试Uri.EscapeUriString
此外,您不应该使用字符串连接和
/
来构造URL/文件名。您通常应该使用Uri/文件名解析库,例如Uri
类您可以尝试Uri.EscapeUriString
此外,您不应该使用字符串连接和
/
来构造URL/文件名。通常应该使用Uri/文件名解析库,例如Uri
类,这并不奇怪。浏览器将%20解释为“空白”,因为它是url编码的等效值。因此,如果您的文件名为“My%20File.pdf”,浏览器将解码url并实际查找“My file.pdf”
如需进一步参考,请检查此项:这并不奇怪。浏览器将%20解释为“空白”,因为它是url编码的等效值。因此,如果您的文件名为“My%20File.pdf”,浏览器将解码url并实际查找“My file.pdf”
如需进一步参考,请选中此项:您可以将
%20
替换为”。文件名。替换(“%20”,”)代码>您可以将%20
替换为”。文件名。替换(“%20”,”)代码>您是说文件名中实际上有一个%
?或者他们就这样表现?为什么文件不能打开?是的,文件名上有一个%你是说文件名里面有一个%
?或者他们就这样表现?为什么文件不能打开?是的,文件名上有一个%你是对的,虽然文件名是my20%sign
,而不是my20sign
。我也花了一秒钟才弄明白:)是的,文件是我的20%符号,所以我不知道为什么不显示。你说得对,虽然文件名是my20%符号
,而不是my%20sign
。我也花了一秒钟才弄明白:)是的,文件是我的20%符号,所以我不知道为什么它不显示。