当我在我的代码中声明了一个固定的文件+文件路径并且被理解为可以工作时,以下代码对我有用。
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
尽管我更改了本地驱动器的安全设置。
线程是否会影响所有这一切,因为此代码是在运行时加载的代码的一部分,而浏览是单击事件?