我正在尝试使用C#上的mySensor
将应用程序目录中的.txt
复制或某种导出功能复制到用户想要的路径和文件名,如下所示。
savedialog
但是我遇到了错误
不支持给定路径的格式。
我是C#的新手,并且希望了解此错误,此外,我还希望将文件名扩展名默认设置为.txt,任何建议都很好。
答案 0 :(得分:1)
您需要更改几件事。 首先,当然是您的电话。这行没有道理
File.Copy(directory, Path.GetDirectoryName(dialog.FileName) + dialog.FileName);
dialog.FileName已经包含目标文件的完整文件名。因此,无需提取目录然后再次添加所有路径。只写
File.Copy(directory, dialog.FileName);
但是,这可能会导致错误。如果您的用户未将目标文件夹更改为另一个目录怎么办?您最终在要读取的同一文件上进行写。
所以我要像这样添加健全性检查
if(directory == dialog.FileName)
MessageBox.Show("Copy","Choose a different output folder");
else
File.Copy(directory, dialog.FileName);
最后,如果要强制输出文件始终具有.TXT扩展名,则可以将此行添加到SaveDialog配置中
// Fix also your filter property. The one you have is invalid
dialog.Filter = "txt files (*.txt)|*.txt";
dialog.FilterIndex = 0; // 2 ?? There is no index 2 in your filter string
dialog.RestoreDirectory = true;
// Force the .TXT extension
dialog.AddExtension = true;