为什么在尝试基于日期时间创建文件夹名称时出现异常?
Why getting exception when trying to create a folder name based on date time?
左边的截图中,我在textBox Text上得到了什么,右边的是点击继续按钮时的异常
创建folder/s方法的代码:
private void CreateDownloadFolders()
{
string locationToCreateFolderRadar = textBoxRadarPath.Text;
string locationToCreateFolderSatellite = textBoxSatellitePath.Text;
string folderName = "";
string date = DateTime.Now.ToString("ddd MM.dd.yyyy");
string time = DateTime.Now.ToString("HH.mm tt");
string format = "{0} on {1} At {2}";
folderName = string.Format(format, date, time);
Directory.CreateDirectory(locationToCreateFolderRadar + folderName);
Directory.CreateDirectory(locationToCreateFolderSatellite + folderName);
}
调用CreateDownloadFolders方法的按钮点击事件:
private async void btnStart_Click(object sender, EventArgs e)
{
CreateDownloadFolders();
urls = new List<string>();
lblStatus.Text = "Downloading...";
rad.GetRadarImages();
await Task.Delay(5000);
foreach (string link in rad.links)
{
urls.Add(link);
}
await sat.DownloadSatelliteAsync();
foreach (string link in sat.SatelliteUrls())
{
urls.Add(link);
}
urlsCounter = urls.Count;
await DownloadAsync();
}
可能是因为按钮点击事件是异步类型?
您的问题在这一行:
folderName = string.Format(format, date, time);
您只发送了两个参数,格式为 3:
string format = "{0} on {1} At {2}";
你有两种方法可以解决这个问题:
1:
string format = "{0} on {1} At X"; // expect only 2 parameters
或
2:
folderName = string.Format(format, date, time, "something else"); // send all 3 parameters
左边的截图中,我在textBox Text上得到了什么,右边的是点击继续按钮时的异常
创建folder/s方法的代码:
private void CreateDownloadFolders()
{
string locationToCreateFolderRadar = textBoxRadarPath.Text;
string locationToCreateFolderSatellite = textBoxSatellitePath.Text;
string folderName = "";
string date = DateTime.Now.ToString("ddd MM.dd.yyyy");
string time = DateTime.Now.ToString("HH.mm tt");
string format = "{0} on {1} At {2}";
folderName = string.Format(format, date, time);
Directory.CreateDirectory(locationToCreateFolderRadar + folderName);
Directory.CreateDirectory(locationToCreateFolderSatellite + folderName);
}
调用CreateDownloadFolders方法的按钮点击事件:
private async void btnStart_Click(object sender, EventArgs e)
{
CreateDownloadFolders();
urls = new List<string>();
lblStatus.Text = "Downloading...";
rad.GetRadarImages();
await Task.Delay(5000);
foreach (string link in rad.links)
{
urls.Add(link);
}
await sat.DownloadSatelliteAsync();
foreach (string link in sat.SatelliteUrls())
{
urls.Add(link);
}
urlsCounter = urls.Count;
await DownloadAsync();
}
可能是因为按钮点击事件是异步类型?
您的问题在这一行:
folderName = string.Format(format, date, time);
您只发送了两个参数,格式为 3:
string format = "{0} on {1} At {2}";
你有两种方法可以解决这个问题:
1:
string format = "{0} on {1} At X"; // expect only 2 parameters
或
2:
folderName = string.Format(format, date, time, "something else"); // send all 3 parameters