Tag: 路径

在C#中从相对路径的文件中加载图片框图像

我在Windows窗体解决方案中有一个picturebox图像。 用户从数据库中选择一个项目后,我想将图像加载到此图片框中。 图像的文件名将来自数据库,所有图像必须存储在应用程序文件夹(\ Images)的子文件夹中。 我不想在我的解决方案中包含所有这些(2000-3000图像),此外,随着数据库的增长,用户将添加更多图像。 另外,我不想编写绝对路径。 所以这不是我想要的: pictureBox.Image = Image.FromFile(@”C:\Program Files\Application\Images\” + dbase.filename); 我想编写图像文件夹的相对路径,因此无论应用程序将安装在何处,都可以从此特定子文件夹加载图像。 我尝试过这样的事情,使用名为“test.jpg”的临时测试图像: pictureBox.Image = Image.FromFile(@”Images\test.jpg”); pictureBox.Image = Image.FromFile(@”..\Images\test.jpg”); pictureBox.Image = Image.FromFile(@”|DataDirectory|\Images\test.jpg”); 但这些都行不通。 我只能用绝对路径来工作,比如“C:\ Images \ test.jpg”。 我该怎么办?

C# – 检查给定的URL是文件还是目录?

我有一个方法,它将输入http,ftp或本地路径。 使用输入URL,我需要确定它是文件还是目录。 Path.GetExtension(url)工作得很好。 但如果目录以/ have’开头。’ 在它的名字,然后这个检查将失败。 有没有其他方法可以检查并列出url if directory?

如何在设计时获取项目路径

我使用一个组件(System.ComponentModel.Component),我想获取我的项目的应用程序路径,以便在其中创建一个文件。 谢谢 弗洛里安

参考库中的ASP.NET相对路径

我有一个ASP.NET网站,我在其中从xml文件加载一些validation规则。 此xml文件名没有路径信息,在库中进行了硬编码。 (我知道硬编码的名称并不好,但是让我们在这个例子中使用它)。 当我运行网站时,ASP.NET尝试在源路径中找到xml文件,其中名称为硬编码的C#文件是。 这对我来说完全令人难以置信,因为我无法理解,在运行时,我们甚至考虑将源路径视为解析不合格文件名的可能性。 // the config class, in C:\temp\Project.Core\Config.cs public static string ValidationRulesFile { get { return m_validationRulesFile; } } private static string m_validationRulesFile = “validation_rules.xml”; // using the file name m_validationRules.LoadRulesFromXml( Config.ValidationRulesFile, “Call” ); 以下是显示我们查找的路径与Config.cs相同的exception: Exception Details: System.IO.FileNotFoundException: Could not find file ‘C:\temp\Project.Core\validation_rules.xml’. 任何人都可以向我解释这个吗? 我已经知道你应该如何处理ASP.NET中的路径,所以请不要回答解决方案。 我真的很想理解这一点,因为它真的让我感到惊讶,而且它会让我感到困扰。 UPDATE 以下是LoadRulesFromXml的相关代码 public void LoadRulesFromXml( string […]

从C#中的路径中删除驱动器(或网络名称)

从C#中的绝对路径中删除驱动器名称,网络路径等最简洁(但最安全)的方法是什么? 例如,转换 \\networkmachine\foo\bar 要么 C:\foo\bar 到\foo\bar 。 关于路径问题似乎已经回答了很多问题,但我找不到我想要的东西。 我想到的第一个想法是使用Path.GetFullPath()来确保我确实使用绝对路径,然后只使用正则表达式来查找第一个不在另一个斜杠旁边的斜杠。 但是,使用正则表达式进行路径操作似乎有点危险。 获得驱动器号/目标网络机器/等,将字符串转换为Uri,并询问相对于驱动器/机器的路径,然后转换回字符串可能更明智吗? 还是有更好的方法?

我在哪里可以获得眼球的XAML路径?

我有一个明星看起来像: Data=”M 61.3431396484375,0 C61.3431396484375,0 80.2991943359375,38.40919494628906 80.2991943359375,38.40919494628906 80.2991943359375,38.40919494628906 122.686279296875,44.56840515136719 122.686279296875,44.56840515136719 122.686279296875,44.56840515136719 92.01470947265625,74.46580505371094 92.01470947265625,74.46580505371094 92.01470947265625,74.46580505371094 99.25527954101562,116.68159484863281 99.25527954101562,116.68159484863281 99.25527954101562,116.68159484863281 61.3431396484375,96.75 61.3431396484375,96.75 61.3431396484375,96.75 23.430999755859375,116.68159484863281 23.430999755859375,116.68159484863281 23.430999755859375,116.68159484863281 30.67156982421875,74.46580505371094 30.67156982421875,74.46580505371094 30.67156982421875,74.46580505371094 0,44.56840515136719 0,44.56840515136719 0,44.56840515136719 42.3870849609375,38.40919494628906 42.3870849609375,38.40919494628906 42.3870849609375,38.40919494628906 61.3431396484375,0 61.3431396484375,0 z”

将文件复制到我没有权限的目录(c:或c:程序文件)

可能重复: 允许访问权限在Windows 7的Program Files中写入 好的,这是我的代码: System.IO.File.WriteAllBytes(path1, path2); 但是,有一个问题。 用户(Windows 7用户没有权限将文件复制到c:默认情况下)(…我的意思是程序…)因此,程序失败。 如果用户允许在c中复制文件:程序运行正常。 但你不能告诉每个用户“去许可……….”所以我怎样才能让用户将我的文件复制到c://

通过句柄获取窗口的可执行路径 – 拒绝访问

我试图通过Handle获得Window的可执行路径。 我使用以下代码来实现: [DllImport(“user32.dll”)] private static extern int GetWindowThreadProcessId(IntPtr handle, out uint processId); public string GetFilePath(IntPtr hwnd) { try { uint pid = 0; GetWindowThreadProcessId(hwnd, out pid); Process proc = Process.GetProcessById((int)pid); //Gets the process by ID. return proc.MainModule.FileName.ToString(); //Returns the path. } catch (Exception ex) { return ex.ToString(); } } 并且它工作正常,除了一些应用程序(例如TeamSpeak 3 64bit [如果重要])。 如何以编程方式克服Access Denied问题? […]

使用服务器文件的路径时,何时需要使用后退或正斜杠(单或双)?

关于以下代码示例: string baseLocation = HttpContext.Current.Server.MapPath(“/”); const string templateName = @”//temp//ExportTemplate.xlsx”; const string generatedLocation = @”{0}//temp//{1}”; var fileName = string.Format(“Export-{0}.xlsx”, DateTime.Now.Date.ToString(“yyyy-MM-dd”)); var newFile = String.Format(generatedLocation, baseLocation, fileName); File.Copy(baseLocation + templateName, newFile, true); 我们在生产服务器和本地开发环境(通过IIS中的站点)上使用它。 两者都运行IIS 7.5。 代码在生产中正常工作,但在本地开发中抛出错误: Access to the path ‘C:\Path\To\Site\//temp//Export-2013-01-29.xlsx’ is denied. 该文件是在本地dev上正确创建/复制的,但由于路径中的斜杠不正确,我猜这是错误的。 应用程序池标识具有对“temp”文件夹的完全访问权限。 这提出了几个问题: 在这种情况下,’//’对路径做了什么? 我理解’\’是逃避反斜杠的方法,但’//’没有意义。 两个环境的配置是否存在差异,这使得生成的路径在生产服务器上正常工作但在本地开发中失败?

C#/。NET Server默认/索引页面的路径

在我试图进一步certificate项目未来的过程中,我试图找到使用C#检索Web目录中索引/默认页面的完整路径和文件名的最佳方法,而不知道Web服务器的文件名列表可能性。 ‘Server.MapPath(“/ test /”)’给我’C:\ www \ test \’ ……所以:’Server.MapPath(Page.ResolveUrl(“/ test /”))’ …但我需要’C:\ www \ test \ index.html’。 有没有人知道现有的检索文件名的方法,当有人浏览到该目录时,网络服务器将提供该文件名 – 无论是default.aspx,还是index.html,还是其他什么? 感谢任何帮助,饲料