如何在C#控制台应用程序中获取服务器路径(server.Mappath)

5
如何在使用C#的控制台应用程序中使用 server.MapPath。我尝试了下面的代码,但无法找到我的PDF文件。请提供建议。
 string[] pdf_file = System.IO.Directory.GetFiles(@"C:\Folder\" + fileName);

1
你想得到什么?一个PDF文件流吗?Directory.GetFiles返回符合你传递的参数模式的文件路径。 - tdragon
GetFiles()不接受文件名作为参数,您必须提供路径,例如:var pdfFiles = System.IO.Directory.GetFiles(@"C:\Folder"); 如果您只想要PDF文件,则使用var pdfFiles = System.IO.Directory.GetFiles(@"C:\Folder", "*.pdf"); 如果您想要特定的文件,则使用var pdfFiles = System.IO.Directory.GetFiles(@"C:\Folder", filename);。但是我不明白最后一个的意义,如果您知道文件名,为什么要调用Directory.GetFiles() - Neil Humby
遇到错误:在 mscorlib.dll 中发生了未处理的类型为 'System.IO.IOException' 的异常。 - harathi viru
Environment.CurrentDirectory - Crowcoder
我正在生成Crystal报表并将其转换为PDF格式,然后保存到应用程序文件夹中,我需要获取相同的转换后的PDF文件并附加到邮件中。因此,我正在使用Directory.GetFiles()方法。@Neil Humby - harathi viru
显示剩余3条评论
3个回答

8
XmlDocument xmlDoc = new XmlDocument();
string path = Directory.GetCurrentDirectory() + "//XMLFile1.xml";
xmlDoc.Load(path);
XmlReader xmlReader = new XmlNodeReader(xmlDoc);
DataSet ds = new DataSet();
ds.ReadXml(xmlReader);

3

实际上,我们需要找到包含bin文件夹的应用程序目录,而我们的可执行文件位于bin/debug文件夹中。因此,我们可以使用Environment.CurrentDirectory获取可执行文件路径,并从中提取我们的路径,如下所示:

string filepath = Environment.CurrentDirectory;
Console.WriteLine(filepath.Split(new String[] {"bin"}, StringSplitOptions.None)[0]);

0

检查"C:\Folder\"的安全访问详细信息。您应该授予用户组IIS_IUSRS读取权限。如果您想允许IIS能够将文件保存到此文件夹中,则还应授予写入访问权限。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接