C# 不允许文件操作。在savedialog.sDialog.OpenFile()中对路径“”的访问被拒绝
我正在使用lib在silverlight 4中导出excel,它在windows 7中工作,问题是,相同的应用导出excel在windows 8 IE中不工作,它在sDialog.OpenFile中抛出错误,但在windows 8 chrome中工作正常 不允许文件操作。对路径的访问被拒绝C# 不允许文件操作。在savedialog.sDialog.OpenFile()中对路径“”的访问被拒绝,c#,excel,silverlight,internet-explorer,windows-8,C#,Excel,Silverlight,Internet Explorer,Windows 8,我正在使用lib在silverlight 4中导出excel,它在windows 7中工作,问题是,相同的应用导出excel在windows 8 IE中不工作,它在sDialog.OpenFile中抛出错误,但在windows 8 chrome中工作正常 不允许文件操作。对路径的访问被拒绝 Windows 8 IE有此限制,或者我做错了什么?您没有设置SaveFileDialog.InitialDirectory属性。现在,您严重依赖于默认的工作目录,无论您使用的浏览器可能是哪一个。Chrome
Windows 8 IE有此限制,或者我做错了什么?您没有设置SaveFileDialog.InitialDirectory属性。现在,您严重依赖于默认的工作目录,无论您使用的浏览器可能是哪一个。Chrome对此相当顽皮,选择了一个不受UAC保护的安装位置。我遵守规则。使用Environment.GetFolderPath从安全的起点开始,如用户的文档目录。IE10中增强的保护模式功能可能会给您带来更多麻烦。但在SL 4中没有SaveFileDialog.InitialDirectory,请改用Environment.CurrentDirectory。
void exportExcel_Click(object sender, RoutedEventArgs e)
{
SaveFileDialog sDialog = new SaveFileDialog();
sDialog.Filter = "Excel Files(*.xls)|*.xls";
if (sDialog.ShowDialog() == true)
{
Workbook workbook = new Workbook();
Worksheet worksheet = new Worksheet("Friends");
// write data in worksheet cells
worksheet.Cells[0, 0] = new Cell("Column1");
worksheet.Cells[0, 1] = new Cell("Column2");
worksheet.Cells[0, 2] = new Cell("Column3");
worksheet.Cells[1, 0] = new Cell("string value");
worksheet.Cells[1, 1] = new Cell(478574.5, "#,###.00");
worksheet.Cells[1, 2] = new Cell(4);
workbook.Worksheets.Add(worksheet);
using (var stream = sDialog.OpenFile())
{
workbook.Save(stream);
}
}
}