//file open
ShellContainer selectedFolder4 = KnownFolders.SampleVideos as ShellContainer;
CommonOpenFileDialog cfd4 = new CommonOpenFileDialog();
cfd4.InitialDirectoryShellContainer = selectedFolder4;
cfd4.EnsureReadOnly = true;
cfd4.Filters.Add(new CommonFileDialogFilter("ALL Files", "*.*"));
cfd4.Filters.Add(new CommonFileDialogFilter("MP4 Files", "*.mp4"));
cfd4.Filters.Add(new CommonFileDialogFilter("WMV Files", "*.wmv"));
cfd4.Filters.Add(new CommonFileDialogFilter("AVI Files", "*.avi"));
cfd4.Filters.Add(new CommonFileDialogFilter("MP3 Files", "*.mp3"));
if (cfd4.ShowDialog() == CommonFileDialogResult.OK)
{
textBoxurl4.Text = "file:///" + cfd4.FileName;
}
这段代码在WIN7下运行没有任何问题,因为KnownFolders.SampleVideos对应的“C:\Users\Public\Videos\Sample Videos”路径是存在的。
然而在WIN8.1下运行就会出错,因为WIN8.1下的路劲只有“C:\Users\Public\Videos”,并没有SampleVideos文件夹。
其实简单的处理方法可以不指定打开路径。但是项目要求捕捉异常,我尝试用try catch也没有用,也没有找到合理的获取方法。
报错内容如下:
用户代码未处理ArgumentException
Given Known Folder ID is invalid.
参数名:KnownFolderID
大神们帮帮忙把
5 个解决方案
#1
trycatch没用说明你写错地方或者catch的异常不对
#2
我是这样写的
try
{
ShellContainer selectedFolder4 = KnownFolders.SampleVideos as ShellContainer;
CommonOpenFileDialog cfd4 = new CommonOpenFileDialog();
cfd4.InitialDirectoryShellContainer = selectedFolder4;
}
catch (MediaPlayer.MPException)
{
textBox1.Text = " error ! FileOpen ";
}
还有就是当我捕捉到这个异常是,想把selectedFolder4 置成空,然后进行区别处理
#3
异常明明是ArgumentException,你却要捕捉MediaPlayer.MPException,当然捉不到了
#4
啊哦。那应该怎么写?新手对捕捉异常有点懵。
#5
非常感觉你的回答,也给我指点的方向。后来我在microsoft网站上看了一下ArgumentException异常的说明。只要把catch的内容改成ArgumentException就能成功。谢谢。
#1
trycatch没用说明你写错地方或者catch的异常不对
#2
我是这样写的
try
{
ShellContainer selectedFolder4 = KnownFolders.SampleVideos as ShellContainer;
CommonOpenFileDialog cfd4 = new CommonOpenFileDialog();
cfd4.InitialDirectoryShellContainer = selectedFolder4;
}
catch (MediaPlayer.MPException)
{
textBox1.Text = " error ! FileOpen ";
}
还有就是当我捕捉到这个异常是,想把selectedFolder4 置成空,然后进行区别处理
#3
异常明明是ArgumentException,你却要捕捉MediaPlayer.MPException,当然捉不到了
#4
啊哦。那应该怎么写?新手对捕捉异常有点懵。
#5
非常感觉你的回答,也给我指点的方向。后来我在microsoft网站上看了一下ArgumentException异常的说明。只要把catch的内容改成ArgumentException就能成功。谢谢。