使用StreamWriter(File.Copy())复制图片C#
我正在尝试将用户使用OpenFileDialog选择的图片复制到我的文件夹中。我以前从未这样做过,但我认为正确的方法是复制。 这是StreamReader的代码:使用StreamWriter(File.Copy())复制图片C#,c#,image,streamreader,streamwriter,openfiledialog,C#,Image,Streamreader,Streamwriter,Openfiledialog,我正在尝试将用户使用OpenFileDialog选择的图片复制到我的文件夹中。我以前从未这样做过,但我认为正确的方法是复制。 这是StreamReader的代码: if (openFileDialogOdaberiSliku.ShowDialog() == System.Windows.Forms.DialogResult.OK) { StreamReader read = new StreamReader(File.OpenRead(openFileDialogOdaberiSlik
if (openFileDialogOdaberiSliku.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
StreamReader read = new StreamReader(File.OpenRead(openFileDialogOdaberiSliku.FileName));
destinationRead = read;
uiInputSlika.Text = destinationRead.ToString();
read.Dispose();
}
这是StreamWriter的代码:
destinationSave = "..\\bin\\Slike\\Slika" + name;
StreamWriter save = new StreamWriter(File.Copy(destinationRead.ToString(), destinationSave));
save.Dispose();
在StreamWriter中,我得到一个错误,上面写着:
错误CS1503参数1:无法从“void”转换为“System.IO.Stream”
我是个新手,非常感谢您的帮助。使用以下代码:
if (openFileDialogOdaberiSliku.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
var bytes = File.ReadAllBytes(openFileDialogOdaberiSliku.FileName);
uiInputSlika.Text = destinationRead.ToString();
destinationSave = "..\\bin\\Slike\\Slika" + name;
File.WriteAllBytes(destinationSave,bytes)
}
也可以使用File.Copy()。如下图所示:
File.Copy(openFileDialogOdaberiSliku.FileName,destinationSave );
StreamReader
是一个文本阅读器
——用于处理文本;大多数图像不是文本,因此StreamReader
不应成为任何解决方案的一部分;看看你想做什么……什么是uiInputSlika
,什么是.Text
?如果这是一幅图像,我不清楚它在uiInputSlika中是如何应用的。文本我保存图片用户选择的路径您应该可以使用File.Copy
,假设这两个文件路径可以直接访问。您可以使用原始流
来读取二进制数据,但不能使用流阅读器
——也就是文本——但到目前为止,我还没有看到您需要达到该级别,当文件时。复制
应该可以正常工作,最终我们在这里讨论的是文件;如果目标文件已经存在,将覆盖;如果它不存在,它会创造新的;这与您尝试执行的操作有何不同?为什么您不只是File.Copy(openFileDialogOdaberiSliku.FileName,destinationSave)
?无需将整个图像加载到内存中-见鬼,将整个事情推迟到操作系统