我不确定文件名的格式应该是如何从第一个文件添加到列表中的第一个日期和时间以及创建文件时的日期时间开始以某种方式构建文件名。动画gif文件:
private void CreateAnimatedGif(bool ToCreate)
{
if (ToCreate == false)
{
AnimatedGifFiles.Add(last_file);
}
else
{
for (int i = 0; i < AnimatedGifFiles.Count; i++)
{
if (!AnimatedGifFiles[i].Contains(last_file))
AnimatedGifFiles.Add(last_file);
}
if (AnimatedGifFiles.Count > 1)
{
unfreezWrapper1.MakeGIF(AnimatedGifFiles, AnimatedGifDirectory, 80, true);
}
AnimatedGifFiles = new List<string>();
}
}
仅当网站每次提供新图像并将图像下载到我的硬盘时,才每X秒调用一次此方法。
然后可以调用该方法几个小时,有时甚至是3-4天。
只要变量ToCreate为false,它将继续将文件添加到列表AnimatedGifFiles。
然后几个小时甚至可能几天后,变量ToCreate为true,然后它将创建gif动画文件。
现在在这一行中,我只给它一个目录:
unfreezWrapper1.MakeGIF(AnimatedGifFiles, AnimatedGifDirectory, 80, true);
AnimatedGifDirectory是带有目录的路径。但是它的结尾应该是文件名:c:\ test \ AnimatedGifFile \ Animated.gif
但是现在只有c:\ test \ AnimatedGifFile \
我不确定如何使用列表日期和时间以及创建gif动画文件的日期和时间中添加的第一个文件来创建文件名。
类似于:12/12 / 04_12 / 22 / 04.gif
我希望用户根据文件名知道事件的日期,即事件开始时间04/12/12和事件结束日期04/22/04
然后几个小时或几天后,将再次调用该方法,因此下一个文件名将是例如:01/10 / 05_01 / 13 / 05.gif
依此类推,但是我不确定如何用第一个添加的文件日期时间以及最后的日期时间以及要制作的文件格式来创建文件名?
也许像这样:First-12 / 12 / 04_Last-12 / 22 / 04.gif
或:Event-12 / 12 / 04-12 / 22 / 04.gif
我还想在开始和结束时添加双方的时间,但这可能会使文件过长。
要么
也许最简单的方法是为每个事件创建一个目录,例如:
事件12/12 / 04-12 / 22/04
并在里面创建一个较短的gif文件。
最佳答案
以此方式更改您的功能。您可以调整日期的格式。注意dateTime
成员变量。
private List<string> AnimatedGifFiles;
private DateTime startTime; // new!!
private void CreateAnimatedGif(bool ToCreate)
{
if(AnimatedGifFiles.Count == 0) // new!!
startTime = DateTime.Now;
if (ToCreate == false)
{
AnimatedGifFiles.Add(last_file);
}
else
{
for (int i = 0; i < AnimatedGifFiles.Count; i++)
{
if (!AnimatedGifFiles[i].Contains(last_file))
AnimatedGifFiles.Add(last_file);
}
if (AnimatedGifFiles.Count > 1)
{
string outputFile = System.IO.Path.Combine( // new!!
AnimatedGifDirectory,
string.Format(
System.Globalization.CultureInfo.InvariantCulture,
"Event-{0:yyyy-MM-dd}-{1:yyyy-MM-dd}.gif", startTime, DateTime.Now));
unfreezWrapper1.MakeGIF(AnimatedGifFiles, outputFile, 80, true); //new!!
}
AnimatedGifFiles = new List<string>();
}
}