2017-05-29 4 views
0
  1. ファイルが存在する関数は、ファイルが存在する場合でも常にfalseを返します。
  2. ファイルパスをコピーして貼り付けようとしましたが、手動で開こうとしましたが、ファイルが物理的に存在しても失敗しました(Win7は正常に動作し、Win8以上の問題)
  3. インターネットからいくつかの解決策を試しました。

File.Exists関数がWindows8以降で動作しない

 string FilePath = @"‪D:\Test\alllllllllthe Data.docx"; 
    if (File.Exists(FilePath)) 
    { 
     string FileContent = File.ReadAllText(FilePath);

}
+0

を、私は、Windows 10 1703実行していますが、パスが正しいことを確認されており、ただこれをテストしました。うまく動作します。 –

+0

@JasonH - 再生するには、次の手順に従います。 1. D/Eドライブにフォルダを作成します。例:D: 2. D:¥Test のようにフォルダを作成します。3. D:\ Test \ myFile.docx ファイルを作成または配置します。4.ファイルを右クリックします。 >>プロパティ>>セキュリティタブ>>オブジェクト名>>全体のファイルパスをコピー 5. Win + Rでそのパスをペーストします。>> Enter –

+0

私はserval時間を試しましたが、簡単に再現可能な8/10倍でした。 –

答えて

0

右私はあなたが正しいですので、それがこれを引き起こしている何が変更されたか理解していないにように正直になります。

string filePath = @"D:\Folder\somefile.txt"; 
File.Exists(filePath) == TRUE // this is not happening 

私はさらに一歩これを取り、行った:

try 
{ 
    var filePath = Path.GetFullPath("E:\\Folder\\somefile.txt"); 
    File.OpenRead(filePath); 
} 
catch (Exception ex) 
{ } 

例外がスローされます。
NotSupportedException: The given path's format is not supported.

これはので、このに行くを与える動作します:また

var filePath = Path.GetFullPath("D:\\Folder\\somefile.txt"); 
File.Exists(filePath) == TRUE // this does work 

を、あなたにもこれを使用することができます:

var path = @"D:\Folder"; 
var fileName = "somefile.txt"; 
var filePath = Path.Combine(path, fileName); 
File.Exists(filePath) == TRUE // this does work 
+0

基本的にファイル操作で同じエラーが発生する**指定されたパスの形式はサポートされていません** –

+0

代替オプションが追加されました –

+1

問題を回避しましたが、余分な文字がありますか?目に見えない経路の開始点にある。私もWin + rやメモ帳に貼り付けています。余分な文字が隠されているので、私は解決策を考え出した。 プライベート文字列TrimInvalidChars(列FileFullPath) {\t INTインデックス= FileFullPath.IndexOf( ":"); if(index> 0) { \t FileFullPath = FileFullPath.Substring(index - 1); } \t \t return FileFullPath; } –

関連する問題