C# silverlight 如何获取文件本地路径?
OpenFileDialogdlg=newOpenFileDialog();dlg.Filter=Filter;dlg.Multiselect=Multiselect;f...
OpenFileDialog dlg = new OpenFileDialog();
dlg.Filter = Filter;
dlg.Multiselect = Multiselect;
foreach (FileInfo file in dlg.Files)
{}
如何获取到文件的路径呢 展开
dlg.Filter = Filter;
dlg.Multiselect = Multiselect;
foreach (FileInfo file in dlg.Files)
{}
如何获取到文件的路径呢 展开
2个回答
展开全部
出于用户系统安全的考虑,Silverlight对于本地文件的访问有相当严格的限制,基本情况如下:
1、在Silverlight 4 之前,OpenFileDialog是无论如何也无法获取用户选中文件的完整路径,顶多只能获取文件名(比如ABC.txt ),或者直接通过OpenFile返回文件流来读取。任何尝试去获取文件完整路径或者文件系统属性的操作都会导致抛出安全性异常。
2、Silverlight 4 之后,当你的Silverlight应用运行于OOB(Out-Of-Browser)模式且提升了信用级别,那么OpenFileDialog就可以获取用户个人文件夹(如我的文档、我的图片、我的音乐等)下面文件的完整路径,方法是通过 file.FullName属性(针对楼主提问中写的代码而言);而对于其它非用户个人文件夹下的文件,仍然是无法获取完整路径。
3、此外,在提升信用级别的OOB模式下,Silverlight也可以不走FileDialog而直接访问用户个人文件夹下面的文件。可以通过类似Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)这样的形式获取这些个人文件夹的完整路径,然后再访问下面的文件。
OOB模式及信用级别的提升都可以在Visual Studio的工程属性里面进行设置。
(另外,楼主问题里面的代码,似乎少了一句dlg.ShowDialog()吧? :) )
1、在Silverlight 4 之前,OpenFileDialog是无论如何也无法获取用户选中文件的完整路径,顶多只能获取文件名(比如ABC.txt ),或者直接通过OpenFile返回文件流来读取。任何尝试去获取文件完整路径或者文件系统属性的操作都会导致抛出安全性异常。
2、Silverlight 4 之后,当你的Silverlight应用运行于OOB(Out-Of-Browser)模式且提升了信用级别,那么OpenFileDialog就可以获取用户个人文件夹(如我的文档、我的图片、我的音乐等)下面文件的完整路径,方法是通过 file.FullName属性(针对楼主提问中写的代码而言);而对于其它非用户个人文件夹下的文件,仍然是无法获取完整路径。
3、此外,在提升信用级别的OOB模式下,Silverlight也可以不走FileDialog而直接访问用户个人文件夹下面的文件。可以通过类似Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)这样的形式获取这些个人文件夹的完整路径,然后再访问下面的文件。
OOB模式及信用级别的提升都可以在Visual Studio的工程属性里面进行设置。
(另外,楼主问题里面的代码,似乎少了一句dlg.ShowDialog()吧? :) )
展开全部
写法:
OpenFileDialog openFileDlg = new OpenFileDialog();
openFileDlg.Multiselect = false;
openFileDlg.Filter = "文本文件(*.txt)|*.txt";
openFileDlg.ShowDialog();
FileInfo fileInfo = openFileDlg.File;
strFilePath = fileInfo.FullName;
StreamReader fileRead = new StreamReader(strFilePath, Encoding.UTF8);
textBox1.Text = fileRead.ReadToEnd();
fileRead.Close();
OpenFileDialog openFileDlg = new OpenFileDialog();
openFileDlg.Multiselect = false;
openFileDlg.Filter = "文本文件(*.txt)|*.txt";
openFileDlg.ShowDialog();
FileInfo fileInfo = openFileDlg.File;
strFilePath = fileInfo.FullName;
StreamReader fileRead = new StreamReader(strFilePath, Encoding.UTF8);
textBox1.Text = fileRead.ReadToEnd();
fileRead.Close();
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |