首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Windows 8应用程序:访问本地和网络文件

Windows 8应用程序:访问本地和网络文件
EN

Stack Overflow用户
提问于 2013-05-16 09:12:38
回答 2查看 1.6K关注 0票数 2

我开始用C#编写Windows 8应用程序,我需要帮助了解如何从我的应用程序中访问文件。

前提:从我学到的到现在为止,我知道作为标准应用程序只能访问某些文件夹(如LocalFolder等)。克服这一问题的一种方法是使用FileOpenPicker一次,然后使用FutureAccessList以编程方式访问文件。

现在我的处境:

  • 我的个人电脑连接到一个域网络。
  • 我的应用程序具有以下功能:企业认证、Internet (Client & Server)、专用网络(Client & Server)
  • 假设我在一个名为im.jpg in C:im2.jpg的网络共享中拥有一个名为 share 的文件。我(我的域名帐户)有权访问这些文件。

不使用FileOpenPicker,我如何从我的应用程序中访问这些文件?到目前为止,我使用WebRequest和WebResponse从互联网站点下载文件(没有问题),然后使用WebRequest和WebResponse访问位于应用程序的LocalFolder中的文件(仍然没有问题),但现在,如果我这样做的话:

代码语言:javascript
复制
WebRequest c = WebRequest.Create(@"file://C:\im.jpg");
WebResponse r = await c.GetResponseAsync();

我得到一个System.Net.WebException告诉我,我无权访问该文件。如何使用企业身份验证向应用程序提供域凭据?我在MSDN上没有找到很多关于这方面的文档,但从我发现的一点点文档来看,我认为这种功能是打算在这样的情况下使用的。另外,WebRequest是应该走的正确道路吗?我是否应该尝试以其他方式访问这些文件?

谢谢你,丹尼尔

EN

回答 2

Stack Overflow用户

发布于 2013-05-17 04:50:17

无论您如何尝试从Windows应用程序访问文件,权限仍然适用,也就是说,如果用户在使用FileOpenPickerFolderPicker之前没有授予您访问权限,则无法访问磁盘上的随机文件或文件共享。

最好的方法可能是让用户使用FolderPicker访问根(磁盘或共享的根),并将对它的引用存储在FutureAccessList中。这样,将来您就可以访问该驱动器上的所有文件,而无需任何用户干预。

让服务作为解决办法应该适用于共享(为什么不直接使用HTTP来允许文件下载呢?)但是对于本地文件系统来说不是这样,因为您的应用程序无法访问本地网络资源(即本地主机上的服务),除非您是从VS运行它或手工使用CheckNetIsolation.exe

票数 2
EN

Stack Overflow用户

发布于 2013-05-16 12:33:57

我不知道企业身份验证,但打开文件通常使用StorageFile::GetFileFromPathAsync。当您拥有权限时,它也适用于UNC路径名。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16583376

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档