gpt4 book ai didi

c# - 如何从 silverlight 文件夹中打开文件

转载 作者:行者123 更新时间:2023-12-03 23:03:25 26 4
gpt4 key购买 nike

我的项目(Silverlight 端)的文件夹(Common)中有一个 xlsx 文件(New.xlsx)。

我想在按钮单击事件上访问该文件路径并打开该文件。

我使用以下路径:

string path = @"/Common/New.xlsx";
string path1 = excel.Workbooks.Open(path);
excel.Visible = true;

但它不起作用,我无法打开该文件。

如何在Silverlight中使用文件路径访问文件?

最佳答案

您可以使用几个选项来授予对相关文件的访问权限。

  • 您可以以流的形式获取文件内容,然后通过 SaveFileDialog 类要求用户保存文件。然后,用户必须选择要保存文件的位置,然后手动打开它。
public static byte[] GetBytesFromStream(Stream input){
byte[] buffer = new byte[16*1024];
using (MemoryStream ms = new MemoryStream()){
int read;
while ((read = input.Read(buffer, 0, buffer.Length)) > 0){
ms.Write(buffer, 0, read);
}
return ms.ToArray();
}
}

public void OnButtonClick(){
var templateUri = new Uri("/Common/New.xlsx, UriKind.Relative");
var templateStream = Application.GetResourceStream(templateUri).Stream;
var bytes = GetBytesFromStream(templateStream);
var sfd = new SaveFileDialog() {
DefaultExt = "xlsx",
Filter = "Excel Files (*.xlsx)|*.xlsx|All files(*.*)|*.*",
FilterIndex = 1
};

if (sfd.ShowDialog() == true) {
using (Stream stream = sfd.OpenFile()) {
stream.Write(bytes, 0, bytes.Length);
}
}
}
  • 您可以将文件存储在服务器端,当用户单击按钮时,您会告诉浏览器获取有问题的文件。然后浏览器将接管并询问用户是否要将文件保存到磁盘或使用已知的应用程序打开。
public void OnButtonClick(){
string link = "{the url/endpoint to the file on the server}";
System.Windows.Browser.HtmlPage.Window.Navigate(new Uri(link), "_blank");
}
  • 您可以沿着 AutomationFactory 路线前进,但这需要进行大量配置更改,如建议的 here

我认为将这些东西放在服务器上比在客户端上要好得多。服务器更有能力处理此类处理。

关于c# - 如何从 silverlight 文件夹中打开文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34461886/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com