【问题标题】:Dynamic File Paths动态文件路径
【发布时间】:2014-01-10 13:43:43
【问题描述】:

假设我在 C# 上有一个特定目录,格式如下:

@"C:\blabla\bla\0.0.1.63\blabla.png";

“0.0.1.63”有时会因软件更新等原因发生变化。

我想知道如何分配“..\” - 使特定目录具有类似的动态效果。因为我不知道更新顺序。

那么,我该如何使目录保持不变,而目录的特定部分 (0.0.1.63) 是“未知”目录。

【问题讨论】:

  • 请澄清:1)路径中的“0.0.1.63”在哪里? (我没看到) 2)您混合了“\”和“/”这一事实是问题的一部分吗? 3) assign "..\" 是什么意思?顺便说一句,我怀疑你只需要System.IO.Path.Combine
  • “动态”是这里使用的流行词。你的意思是你的实际问题是你想在一个已知名称的目录(在这种情况下是C:\blabla/bla/)中找到一个名称未知的目录(在这种情况下是0.0.1.63)?请参阅DirectoryInfo.GetDirectories(),看看您是否能找到符合您偏好的任何内容。
  • 得到路径后打算如何处理?
  • @MarkHall 这是我正在进行的一个项目。而不是指定,因为这是私人的和不相关的。
  • 我想知道如何更好地构建答案..

标签: c# file dynamic path


【解决方案1】:

您可以使用DirectoryInfo.EnumerateDirectoriesDirectoryInfo.EnumerateFileSystemInfos 方法来查找您的文件,然后您可以从 FileInfo 对象 FullName 中删除文件名并使用结果。这样的事情应该可以工作。

private void button1_Click(object sender, EventArgs e)
{
    openFileDialog1.InitialDirectory = getPath();
    openFileDialog1.ShowDialog();
}

private string getPath()
{
    DirectoryInfo di = new DirectoryInfo(@"C:\blabla\bla\");
    foreach (var d in di.EnumerateDirectories())
    {
        foreach(var fi in d.EnumerateFileSystemInfos())
        {
            if (fi.Name == "blabla.png")
            {
                return fi.FullName.Replace(fi.Name,"");
            }
        }
    }
    return di.FullName ;
}

【讨论】:

  • 不客气,很高兴能为您提供帮助。
猜你喜欢
  • 2021-06-24
  • 2018-02-09
  • 2018-07-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-20
  • 2012-08-04
  • 2011-07-05
相关资源
最近更新 更多