【发布时间】:2014-12-27 06:22:24
【问题描述】:
当我在我的代码中声明了一个固定的文件+文件路径并且被理解为可以工作时,以下代码适用于我。
NetworkStream netStream = client.GetStream();
string FileName = @"D:\John\FYL\video1.mp4";
Directory.CreateDirectory(Path.GetDirectoryName(FileName));
using (FileStream fs = new FileStream(FileName, FileMode.OpenOrCreate, FileAccess.Write))
{
netStream.CopyTo(fs);
}
netStream.Close();
}
但是这个protion失败了。
NetworkStream netStream = client.GetStream();
// FileName is taken at run time on button click from textbox.
using (FileStream fs = new FileStream(@"D:\John\FYL\"+FileName, FileMode.OpenOrCreate, FileAccess.Write))
{
netStream.CopyTo(fs);
}
netStream.Close();
}
现在,当我检查另一个案例时,使用 File.Create 并在运行时获取 FileName 它可以工作。
FileStream output = File.Create(@"D:\John\" + FileName)
我很怀疑,因为我必须在运行时从“浏览”对话框中获取保存位置,但为什么 FileStream fs = new FileStream(@"D:\John\FYL\+FileName 会引发 System.IO.DirectoryNotFoundException 和 System.UnauthorizedAcessException 等异常,尽管我更改了本地驱动器的安全设置。
线程是否会影响这一切,因为这段代码是在运行时加载的代码的一部分,而浏览是一个点击事件?
【问题讨论】:
标签: c# winforms file-io client-server system.io.file