2015-04-16 47 views
-4
using System; 
using System.IO; 
namespace GetFilesFromDirectory 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      Console.WriteLine("Write your Name of Disc"); 
      string myDisc = Console.ReadLine(); 
      string myDisc1 = "@\""; 
      Console.WriteLine("Write your Directory"); 
      string myDir1 = Console.ReadLine(); 
      string myDir = ":\\"; 
      string myDir2 = "\\\""; 
      string myPath = myDisc1 + myDisc + myDir + myDir1 + myDir2; 
      Console.WriteLine(myPath); 
      string[] filePaths = Directory.GetFiles(myPath); 


      foreach (var files in filePaths) 
      { 
       Console.WriteLine(files); 
      } 
      Console.ReadLine(); 
     } 

    } 
} 
+0

你可能會做出錯誤的路徑,調試,看看你有mypath中調用的GetFiles之前。這個myPath值應該打開給定的文件夾 – Adil

+5

你的問題到底是什麼?你有編譯器錯誤嗎?邏輯錯誤?你期望發生什麼,發生了什麼? – nvoigt

+0

顯示至少一個'myPath'的內容示例 – DrKoch

回答

0

從我可以告訴你的myPath看起來就像@"discName:\dirName\",你不需要追加@""

這些符號用於在創建新字符串變量時注意這是一個String literal,但是您要將這些字符包含在要生成的實際字符串中。

換句話說,除去比那還好myDisc1myDir2

,由DrKoch

string myPath = Path.Combine(myDisc + @":\", myDir1); 
+0

其實你需要在myDisc之後添加「:\\」 –

+1

如果路徑是驅動器引用,則不會添加斜槓http://stackoverflow.com/questions/19909008/path-combine-does-not-add-目錄分隔符後驅動器字母 –

+0

@alessiobortolato - 道歉,謝謝 – Sayse

0

指出試試這個

static void Main(string[] args) 
    { 
     Console.WriteLine("Write your Name of Disc"); 
     //You need to add :\ to make it a fullPath 
     string myDisc = Console.ReadLine()+":\\"; 

     Console.WriteLine("Write your Directory"); 
     string myDir1 = Console.ReadLine(); 


     string myPath = Path.Combine(myDisc , myDir1); 
     Console.WriteLine(myPath); 
     string[] filePaths = Directory.GetFiles(myPath); 


     foreach (var files in filePaths) 
     { 
      Console.WriteLine(files); 
     } 
     Console.ReadLine(); 
    } 

你在做什麼是創建一個字符串至極是你想要的字符串的字面意思,但你不需要這樣做。
例如,如果你這樣寫:
string [email protected]"c:\dir\subdir";其真正的價值將是c:\dir\subdir
代替本"@\"c:\\dir\\subdir\"";將 @"c:\dir\subdir"
閱讀這些文章,以更好地理解字符串和逐字字符串https://msdn.microsoft.com/en-us/library/aa691090(v=vs.71).aspx
https://msdn.microsoft.com/en-us/library/362314fe.aspx
https://msdn.microsoft.com/en-us/library/h21280bw.aspx

相關問題