[英]How to set style of some parts of text in DataGrid by condition in C#
[英]How to get some parts of the directory c#
例如,
foreach (var imageFile in Directory.GetFiles(dir, "*.*", SearchOption.AllDirectories))
{
//add to list
}
imageFile的輸出= C:\\Users\\Documents\\MyWeb\\Slide\\Main\\slider2.png
我只需要獲取\\Slide\\Main\\slider2.png
有沒有簡單的方法可以做到這一點?
由於您要查找特定的文件夾,因此可以執行以下操作:
var imageFile = @"C:\Users\Documents\MyWeb\Slide\Main\slider2.png";
var subFolder = @"\Slide\Main";
var relativePath = imageFile.Substring(
imageFile.IndexOf(subFolder, StringComparison.OrdinalIgnoreCase));
您可以使用如下形式:
string imageFile = @"C:\Users\Documents\MyWeb\Slide\Main\slider2.png";
string match = System.Text.RegularExpressions.Regex.Match(imageFile,@"\\Slide\\Main\\.*").Value;
為什么不使用string.Split(“ \\”),這將為您提供該路徑的所有塊,然后您可以將其余部分從所需位置連接起來,或者使用正則表達式如@Zalomon所述
您已經可以通過Uri輕松完成此操作,我已經對其進行了測試,因此可以正常工作
namespace ConsoleApplication1
{
class Program
{
public static void Main()
{
Uri uriAddress1 = new Uri("C:\\Users\\Documents\\MyWeb\\Slide\\Main\\slider2.png");
Console.WriteLine("The parts are {0}{1}{2}", uriAddress1.Segments[5], uriAddress1.Segments[6], uriAddress1.Segments[7]);
Console.ReadKey();
}
}
}
我希望我能相信最早寫這篇文章的人,但是此后我失去了鏈接。
從我的實用程序集合中:
/// <summary>
/// Generates a Relative Path for targetPath, from basePath
/// </summary>
/// <param name="basePath">The Directory to start from.</param>
/// <param name="targetPath">Full Path to file or folder that is to be made relative</param>
/// <returns>The relative location of targetPath, from basePath</returns>
/// <remarks>Tested in Util.Tests.IO.PathUtilsTests</remarks>
public static string MakeRelativePath(string basePath, string targetPath)
{
if (basePath == targetPath)
return "";
if (!basePath.EndsWith(Path.DirectorySeparatorChar.ToString()))
basePath += Path.DirectorySeparatorChar;
if (String.IsNullOrEmpty(basePath)) throw new ArgumentNullException("basePath");
if (String.IsNullOrEmpty(targetPath)) throw new ArgumentNullException("targetPath");
var fromUri = new Uri(basePath);
var toUri = new Uri(targetPath);
if (fromUri.Scheme != toUri.Scheme) { return targetPath; } // path can't be made relative.
var relativeUri = fromUri.MakeRelativeUri(toUri);
var relativePath = Uri.UnescapeDataString(relativeUri.ToString());
if (toUri.Scheme.Equals("file", StringComparison.InvariantCultureIgnoreCase))
{
relativePath = relativePath.Replace(Path.AltDirectorySeparatorChar, Path.DirectorySeparatorChar);
}
return relativePath;
}
用法:
var output = @"C:\Users\Documents\MyWeb\Slide\Main\slider2.png";
var basePath = @"C:\Users\Documents\MyWeb\";
var rel = MakeRelativePath(basePath, output);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.