我目前正在尝试在文件名中添加DateTime
戳记,前缀和唯一编号。我想要的输出是:
上面的\ ParentDirectory \ Sub Directory \ Another Sub Directory \ Prefix- Unique Number - 11 29 2016 2 07 30 PM.xlsx
Prefix
和Unique Number
将传递给该函数。我使用以下方法来实现这一目标:
public static string AppendDateTimeToFileName(this string fileName, string prefix, string uniqueNumber)
{
return string.Concat(
Path.GetFullPath(fileName),
Path.Combine(prefix + " - " + uniqueNumber + " - "),
Path.GetFileNameWithoutExtension(fileName),
DateTime.Now.ToString()
.Replace("/", " ")
.Replace(":", " ")
.Trim(),
Path.GetExtension(fileName)
);
}
我将上述方法称为:
string fileName = @"\\ParentDirectory\Sub Directory\Another Sub Directory\MyFile.xlsx";
string adjustedFileName = fileName.AppendDateTimeToFileName("Shipping Note", "0254900");
我收到的输出如下:
\ ParentDirectory \ Sub Directory \ Another Sub Directory \ Shipping Note - \ 0254900 - 11 29 2016 2 08 10 PM
正如您在上面的输出中看到的那样,字符串不正确,首先我得到一个额外的-\
,文件扩展名也没有通过。有人可以告诉我,我在哪里出错。
答案 0 :(得分:2)
以下是我的表现
public static string AppendDateTimeToFileName(this string fileName, string prefix, string uniqueNumber)
{
return Path.Combine(
Path.GetDirectoryName(fileName),
string.Concat(
prefix,
" - ",
uniqueNumber,
" - ",
Path.GetFileNameWithoutExtension(fileName),
DateTime.Now.ToString("MM dd yyyy h mm ss tt"),
Path.GetExtension(fileName)));
}
这正确地使用Path.Combine
来组合Path.GetDirectoryName
的目录和您的新连接文件名。注意我还使用了日期格式字符串而不是替换。您可能需要考虑更改该格式并在文件名和日期之间放置一个分隔符。
答案 1 :(得分:1)
代码的发布版本提供以下输出:
\ ParentDirectory \ Sub Directory \ Another Sub Directory \ MyFile.xlsxShipping Note - 0254900 - MyFile29 11 2016 15 46 48.xlsx
而不是你发布的:
\ ParentDirectory \ Sub Directory \ Another Sub Directory \ Shipping Note - \ 0254900 - 11 29 2016 2 08 10 PM
如果你想要的输出是:
\ ParentDirectory \ Sub Directory \ Another Sub Directory \ Prefix- Unique Number - 11 29 2016 2 07 30 PM.xlsx
您需要将目录移至Path.Combine
并使用GetDirectoryName
。同时删除该行:
Path.GetFileNameWithoutExtension(fileName)
因为在您想要的输出中,我没有看到旧文件名"MyFile"
这段代码:
public static string AppendDateTimeToFileName(this string fileName, string prefix, string uniqueNumber)
{
return string.Concat(
Path.Combine(Path.GetDirectoryName(fileName), prefix + " - " + uniqueNumber + " - "),
DateTime.Now.ToString()
.Replace(".", " ")
.Replace(":", " ")
.Trim(),
Path.GetExtension(fileName)
);
}
将产生以下输出:
\ ParentDirectory \ Sub Directory \ Another Sub Directory \ Shipping Note - 0254900 - 29 11 2016 15 39 37.xlsx