2013-12-22 5 views
1

가정하자 나는 다음과 같은 형식의 C에 # 특정 디렉토리했다 :동적 파일 경로

"C : \ blabla \ 즐 \ 0.0.1.63 \ blabla.png"@를;

"0.0.1.63"은 소프트웨어 업데이트로 인해 때때로 바뀝니다.

동적 인 특정 디렉토리에 대해 ".. \"유사한 효과를 어떻게 할당 할 수 있는지 알고 싶습니다. 업데이트 시퀀스를 모르기 때문에.

그럼, 디렉토리의 특정 부분 (0.0.1.63)이 "알 수없는"디렉토리 인 동안 디렉토리가 동일하게 유지되도록하려면 어떻게해야합니까?

+0

분명히 말하십시오. 1) 경로에서 "0.0.1.63"은 어디에 있습니까? (나는 그것을 보지 못한다) 2) "\"와 "/"가 혼합되어 있다는 사실이 문제의 일부인가? 3) * "*"를 할당한다는 것은 무엇을 의미합니까? 그건 그렇고, 당신이 필요로하는 것은 ['System.IO.Path.Combine'] (http://msdn.microsoft.com/en-us/library/system.io.path.combine (v = vs. 110) .aspx). – Theraot

+0

"동적"은 여기서 사용되는 전문 용어입니다. 실제로 알려진 이름을 가진 디렉토리 (이 경우'C : \ blabla/bla /')에 이름이 알려지지 않은 디렉토리 (이 경우'0.0.1.63')를 찾으려고한다는 것이 실제 문제입니까? ['DirectoryInfo.GetDirectories()'] (http://msdn.microsoft.com/en-us/library/s7xk2b58(v=vs.110) .aspx)를보고 기본 설정과 일치하는 항목을 찾을 수 있는지 확인하십시오. – CodeCaster

+0

당신이 그것을 얻을 때 경로로 무엇을 할 계획입니까? –

답변

0

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 ; 
} 
+0

도움을 주셔서 감사합니다. – user3126288

+0

환영합니다. 도움이 될 수있어서 다행입니다. –