用户权限问题
本文关键字:问题 权限 用户 | 更新日期: 2023-09-27 17:52:52
我正在使用Visual Studio c#从我正在使用的本地搜索工具中解析文件位置的XML文档。具体来说,我使用c#来查询用户是否有权访问某些文件,并隐藏那些用户无权访问的文件。我似乎有文件,应该返回访问是真的,但因为不是所有的文件都是本地的(IE有些是没有专有名称的web文件),它不显示访问文件,它应该显示访问权限。现在的错误是由使用.aspx?i=573
的url引起的,是否有一个解决方案,或者我将不得不删除所有这些文件…=/
编辑:更多信息…
我现在正在使用....
foreach (XmlNode xn in nodeList)
{
string url = xn.InnerText;
//Label1.Text = url;
try
{ using (FileStream fs = File.OpenRead(url)) { }
}
catch { i++; Label2.Text = i.ToString(); Label1.Text = url; }
}
问题是,当它试图打开像….aspx?i=573
,它把它们放到捕获堆栈中。如果我试图打开文件,但文件打开只是很好。(IE我有读访问权限,但因为文件类型或'?
我想通过url或本地访问显示所有可读的内容,否则它将为我捕获错误文件。
我不确定您到底想要做什么,但是如果您只想要URI的路径,您可以轻松地像这样删除查询字符串部分:
Uri baseUri = new Uri("http://www.domain.com/");
Uri myUri = new Uri(baseUri, "home/default.aspx?i=573");
Console.WriteLine(myUri.AbsolutePath); // ie "home/default.aspx"
你不能有?
或者,您可以直接替换'?
如果要将URL转换为文件名,则使用其他字符。实际上,现在考虑一下,您可以检查一下您的"文档"是否为URI,如果不是,则尝试在文件系统上打开该文件。听起来好像您正在尝试打开提供的任何和所有内容,但是对数据执行一些检查不会有什么坏处。
private static bool IsLocalPath(string p)
{
return new Uri(p).IsFile;
}
这是来自检查路径输入是URL还是本地文件,它看起来就像你正在寻找的
FileStream读写本地文件。"?"不是本地文件名的有效字符。
看起来你想打开本地和远程文件。如果这是你想做的,你应该使用适当的方法来下载每一种类型-即HTTP你的WebRequest或相关的类。
注意:如果你说:当url是"…",回答起来会容易得多。File.OpenRead(url)
异常失败,消息"…".