Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
正在使用C#列出文件,无法打开%的文件_C#_Asp.net_File Listing - Fatal编程技术网

正在使用C#列出文件,无法打开%的文件

正在使用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);

我使用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
的代码文件将无法在浏览器中打开。

您可以尝试
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%符号,所以我不知道为什么它不显示。