0

我在 Telerik sitefinity 中使用 pdf 文件名,如下所示:

test..pdf (41 KB )

1..pdf (34 KB )

如何像这样改变这些?test.pdf1.pdf

4

4 回答 4

2

如果它们看起来都像这样(两个句点而不是一个句点,您可以简单地执行以下操作:

myFileName = myFileName.Replace("..", ".");

此外,似乎我没有考虑附加到路径的文件的大小。可以通过分割空间来删除​​它,并采用这样的第一个元素:

myFileName = myFileName.Split(' ')[0];

要同时用 .. 替换 .. 并删除文件大小,您可以像这样将它们链接在一起:

myFileName = myFileName.Replace("..", ".").Split(' ')[0];
于 2013-01-18T08:17:31.907 回答
0

更简单:string fileName = tempFileName.Replace("..pdf",".pdf");

对于性能、使用StringBuilder.Replace()方法、

StringBuilder strBuilder = new StringBuilder(tempFileName);
strBuilder.Replace("..pdf", ".pdf");
string fileName = strBuilder.ToString();

如果你像我一样只想替换一个实例(这有点棘手)

string ReverseString(string p)
{
    char[] arr = p.ToCharArray();
    Array.Reverse(arr);
    return new string(arr);
}

var regex = new RegEx("fdp..");
var fileName = ReverseString(regex.Replace(ReverseString(tempFileName), "fdp.",1));
于 2013-01-18T08:22:49.173 回答
0

如果扩展名未知,那么在您的情况下它是 PDF,这可以通过以下方式完成:

string fileName = string.Format("{0}.pdf","test..pdf (41 KB )".Split('.')[0]);

如果您需要更大的灵活性,也可以将PDF其设为字符串变量。

不要简单地替换,因为文件也可以包含点。

于 2013-01-18T08:18:09.527 回答
0

String.Replace 方法允许您将“..”替换为“.” 只要您知道没有其他情况可能需要“..”

例如:

 pdfFile = pdfFile.Replace("..", ".");
于 2013-01-18T08:18:22.477 回答