저는 winforms 및 zip 프로그램을 망설입니다. 이제 내가 가진 첫 번째 딸꾹질은 저장하려고 할 때 확장을 강요하지 않았다는 것입니다. 그래서 이름을 입력하면 파일로 저장했습니다. (나는 name.rar에 입력하면, 그것은 잘 작동하지만, 그러나 우리는 물론, .RAR 부분이 자동으로되고 싶어)C# System.ArgumentException : "빈 경로 이름이 올바르지 않습니다."
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!");
}
}
디버그 및'foreach는 (파일에서 문자열 파일)'에 saveFileDialog1.FileName''의 가치와'file'을 확인합니다. 빈 문자열이 아니어야합니다. – Sunil
죄송합니다. 이해할 것 같지 않습니다. 나는 이것 모두에 아주 새롭다. – GhostyIs1337
Visual Studio에서 코드를 디버깅하는 방법에 대해 알아보십시오. 'saveFileDialog1.FileName'과'file'을 사용했던 곳에 브레이크 포인트를 추가하십시오. 중단 점에 도달 할 때마다 값이 비어 있는지 확인하십시오. 그게 비어 있다면? 무슨 일이야? – Sunil