c# - C# 从 ListBox 按钮保存结果?
问题描述
我在 Windows Forms App (.NET Framework) 中创建了一个新项目,这是我拥有的代码:
private void SaveProxyResults_Click(object sender, EventArgs e)
{
SaveFileDialog dlg = new SaveFileDialog();
if (dlg.ShowDialog() == DialogResult.OK)
{
StreamWriter writer = new StreamWriter(dlg.FileName);
for (int i = 0; i < GatheredProxies.Items.Count; i++)
{
writer.WriteLine((string)GatheredProxies.Items[i]);
}
writer.Close();
}
dlg.Dispose();
}
使用此当前代码,保存文件菜单会弹出,但它不会自动转到您的桌面,也没有自动选择文件类型,我也无法将其保存为 .txt,因为它给了我一个错误。
如何编辑代码以使其自动选择 .txt 作为文件格式,能够输入文件名并自动选择桌面作为文件保存位置,同时仍然能够更改文件的位置应该被保存?
解决方案
Stream myStream;
SaveFileDialog dlg = new SaveFileDialog();
dlg.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";
dlg.FilterIndex = 2;
dlg.RestoreDirectory = true;
if (dlg.ShowDialog() == DialogResult.OK)
{
if ((myStream = dlg.OpenFile()) != null)
{
StreamWriter writer = new StreamWriter(dlg.FileName);
for (int i = 0; i < GatheredProxies.Items.Count; i++)
{
writer.WriteLine((string)GatheredProxies.Items[i]);
}
writer.Close();
}
dlg.Dispose();
}
给我错误:
System.IO.IOException: 'The process cannot access the file 'C:\Users\JP\Desktop\Scraped Proxies123' because it is being used by another process.'
推荐阅读
- bash - 如果它与另一个文件的列表匹配,则将整个列检索到新文件
- python - 为什么 pd.qcut() 会产生大量边界?
- java - Java 8 流、List.subList 或 Stream.skip().limit()
- hyperledger-fabric - Hyperledger Fabric Node SDK 中的 CryptoKeyStore 和 Wallet 有什么区别?
- r - 绘制估计生存率如何取决于感兴趣的协变量的值。重新调整的问题
- javascript - 安装后如何设置元素的状态?
- javascript - 如何修复 Cloud Function 错误 admin.database.ref 不是导出时的函数
- python - Django App中的芹菜任务发现仅部分工作
- python - 如何将变量传递给导入的脚本
- sql - 查询以每 4 小时根据时间戳获取最大值