我正在使用winforms和zip程序。现在,我遇到的第一个打ic是,当我尝试保存时,它不会强制任何扩展名,因此,如果我输入一个名称,它将其保存为文件。我用以下方式修复了此问题:
saveFileDialog1.Title = "Izberi kam naj se datoteke kompresirajo";
saveFileDialog1.DefaultExt = "rar";
saveFileDialog1.Filter = "RAR Files (*.rar)|*.rar";
saveFileDialog1.FilterIndex = 1;
现在,它强迫rar作为扩展名,尽管它在"键入"下拉下拉中,而不是名称本身。
当我尝试只用名称保存时;它抛出"空路径名不是合法的"错误,如果我在末尾输入.rar。
。这是按钮的其余代码;其他人正常工作。它发生在ZipArchive zip = ZipFile.Open
线路。
private void button3_Click(object sender, EventArgs e)
{
saveFileDialog1.Title = "Izberi kam naj se datoteke kompresirajo";
saveFileDialog1.DefaultExt = "rar";
saveFileDialog1.Filter = "RAR Files (*.rar)|*.rar";
saveFileDialog1.FilterIndex = 1;
DialogResult result = saveFileDialog1.ShowDialog();
if (result == DialogResult.OK)
{
if (isFolder)
{
ZipFile.CreateFromDirectory(textBox1.Text, saveFileDialog1.FileName);
}
else
{
string[] files = textBox1.Text.Split(',');
ZipArchive zip = ZipFile.Open(saveFileDialog1.FileName, ZipArchiveMode.Create);
foreach (string file in files)
{
zip.CreateEntryFromFile(file, Path.GetFileName(file), CompressionLevel.Optimal);
}
zip.Dispose();
}
MessageBox.Show("Uspešno!");
}
}
根据您在调试中的发现。
如果文件名为空白,您将获得此错误。您需要输入文件名。
您可以添加额外的支票:
if (result == DialogResult.OK && !string.IsNullOrEmpty(saveFileDialog1.FileName))