Ich bin mit winforms und zip-Programmen herumalbern. Nun, der erste Schluckauf, den ich hatte, war, dass es keine Erweiterung erzwang, wenn ich versuchte, es zu speichern, also wenn ich einen Namen eingab, speicherte es es gerade als eine Akte. Ich reparierte diese mit: (obwohl, wenn ich in name.rar getippt es gut funktioniert, aber wir wollen das .rar Teil automatisch zu sein, natürlich)C# System.ArgumentException: "Der Name des leeren Pfads ist nicht zulässig."
saveFileDialog1.Title = "Izberi kam naj se datoteke kompresirajo";
saveFileDialog1.DefaultExt = "rar";
saveFileDialog1.Filter = "RAR Files (*.rar)|*.rar";
saveFileDialog1.FilterIndex = 1;
Nun zwingt .rar als Erweiterung, obwohl Es befindet sich in der Dropdown-Liste "Dateityp", nicht im Namen selbst.
Wenn ich versuche, es mit nur einem Namen zu speichern; es wirft den Fehler "leerer Pfadname ist nicht zulässig" auf, es macht dasselbe, wenn ich am Ende rar eingib.
Hier ist der Rest des Codes der Schaltfläche; die anderen funktionieren gut. Es passiert bei der ZipArchive zip = ZipFile.Open
Linie.
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!");
}
}
Debug und überprüfen Wert von 'saveFileDialog1.FileName' und' 'file' in foreach (string Datei in Dateien)'. Es sollte keine leere Zeichenfolge sein. – Sunil
Es tut mir leid, ich glaube nicht, dass ich es verstehe. Ich bin sehr neu in all dem. – GhostyIs1337
Erfahren Sie, wie Sie Ihren Code in Visual Studio debuggen. Fügen Sie an den Stellen, an denen Sie 'saveFileDialog1.FileName' und' file' verwenden, Haltepunkte hinzu. Wann auch immer der Unterbrechungspunkt getroffen wird, überprüfen Sie den Wert, wenn es leer ist oder nicht? Wenn es leer ist? Was ist der Grund? – Sunil