2015-10-30 82 views
1

我正在創建一個小型的C#程序,該程序從用戶選擇的位置讀取紡織品..我設法正確地讀取了這些文件,但是我想如果錯誤地輸入文件名/路徑....或文件類型不正確,則向用戶顯示錯誤消息。 我已經嘗試了有限的知識內的一切,現在我有點卡住了。任何幫助都將非常感激。由於檢查用戶是否輸入了正確的文件系統路徑

using System; 

class ReadFromFile 
{ 
static void Main() 
{ 
    Console.WriteLine ("Welcome to Decrypter (Press any key to    begin)"); 
    Console.ReadKey(); 

    //User selects file they wish to decrypt 
    int counter = 0; 
    string line; 
    string path; 


    Console.WriteLine ("\nPlease type the path to your file"); 
    path = Console.ReadLine(); 

    // Read the file and display it line by line. 
    System.IO.StreamReader file = 
     new System.IO.StreamReader (path); 

     while ((line = file.ReadLine()) != null) { 

      Console.WriteLine (line); 
      counter++; 
     } 

     file.Close(); 

     // Suspend the screen. 
     Console.ReadLine(); 
     } 
     } 
+2

如果您只想查看路徑是否有效以及文件是否存在,可以使用['File.Exists'](https://msdn.microsoft.com/zh-cn/library/system.io .file.exists(v = vs.110).aspx) – juharr

回答

1

使用

try 
{ 
    if (!File.Exists(path)) 
    { 
     // Tell the user 
    } 
} 
catch (Exception ex) 
{ 
    // tell the user 
} 

文件的存在

添加

using System.IO; 

代碼文件的頂部

+1

Althoug如果使用IO-方法,使用'Try ... Catch'可能會很有用,在這種情況下它看起來很重要。但事實並非如此。實際上,如果路徑無效,'File.Exists'沒有問題。 –

+0

@TimSchmelter,你是對的,它可能是過度殺傷,因爲它似乎'File.Exists'不會拋出異常,即使當'path'爲空或否則無效或該文件是不可訪問的。 – GreatAndPowerfulOz

+0

將是一個奇怪的方法,用於檢查您是否提供有效的路徑,但如果該驗證返回「false」,則會引發異常。那麼'bool'返回值的目的是什麼? –

1

使用此:

bool exists = System.IO.File.Exists(path); 
相關問題