c# - 将文件保存到 Windows Form C# 中的特定文件夹
问题描述
我正在尝试将一些选定的文件保存在我的应用程序内的文件夹(图像)中
我可以使用以下代码获取文件:
private void button1_Click(object sender, EventArgs e)
{
string imagelocation = "";
OpenFileDialog dialog = new OpenFileDialog();
if(dialog.ShowDialog() == System.Windows.Forms.DialogResult.OK )
{
textBox2.Text = dialog.FileName;
}
}
为了保存我在 textBox2 中得到的文件,我尝试了以下代码。但是使用以下代码,我还必须选择要保存文件的路径。如果我想(将我的路径永久设置为“图像”文件夹,如图所示)进行保存怎么办?
private void button2_Click(object sender, EventArgs e)
{
SaveFileDialog f = new SaveFileDialog();
if(f.ShowDialog() == DialogResult.OK)
{
using(Stream s = File.Open(f.FileName, FileMode.CreateNew))
using(StreamWriter sw = new StreamWriter(s))
{
sw.Write(textBox2.Text);
}
}
}
解决方案
2 解决这个问题的方法
- 第一种方法:( 浏览文件并单击保存,自动将所选文件保存到图像目录)
private void button2_Click(object sender, System.EventArgs e)
{
var assemblyPath = System.Reflection.Assembly.GetExecutingAssembly().Location;
var assemblyParentPath = Path.GetDirectoryName(assemblyPath);
var imageDir = Path.Combine(assemblyParentPath, "Image");
if (!Directory.Exists(imageDir))
Directory.CreateDirectory(imageDir);
using (Stream s = File.Open(imageDir+"\\"+Path.GetFileName(textBox1.Text), FileMode.CreateNew))
using (StreamWriter sw = new StreamWriter(s))
{
sw.Write(textBox1.Text);
}
}
- 第二种方法:(浏览文件并保存打开 SaveDialog 目录作为图像目录和文件名作为先前选择的文件)
private void button2_Click(object sender, System.EventArgs e)
{
var assemblyPath = System.Reflection.Assembly.GetExecutingAssembly().Location;
var assemblyParentPath = Path.GetDirectoryName(assemblyPath);
var imageDir = Path.Combine(assemblyParentPath, "Image");
if (!Directory.Exists(imageDir))
Directory.CreateDirectory(imageDir);
SaveFileDialog f = new SaveFileDialog();
f.InitialDirectory = imageDir;
f.FileName = textBox1.Text;
if (f.ShowDialog() == DialogResult.OK)
{
using (Stream s = File.Open(imageDir + "\\" + Path.GetFileName(textBox1.Text), FileMode.CreateNew))
using (StreamWriter sw = new StreamWriter(s))
{
sw.Write(textBox1.Text);
}
}
}```
推荐阅读
- java - 如何在 imageManipulator 中使用通过 DocumentPicker 获取的本地文件 uri。使用博览会
- vue.js - 如何正确使用 vue3/vue 路由器?
- unity3d - 为什么我的统一字符卡在瓷砖地图中?
- python - 使用 python (PANDA) 在 csv 文件中添加一行
- c++ - 为什么我的访问者对我的 std::variant 有堆栈损坏
- docker - 在主机上运行良好的管道卡在 docker 容器中
- reactjs - 调用了 Jest Mock 函数,但 jest toHaveBeenCalledTimes 返回 0
- java - 有没有办法跳过 ActionListener 的鼠标点击?
- r - 为列表中的每个实例重复一行
- c# - 在 c# 中运行时使用 selenium 更改代理端口