2012-07-16 69 views
0

我正在使用vb.net編寫windows應用程序的代碼。我想在c:\下打開一個文本文件。如果文件已經存在,我想刪除該文件。用vb.net打開一個文本文件,如果它存在刪除該文件

my code 
------- 
Dim file As String = "C:\test.txt" 
    If System.IO.File.Exists(file) Then 
     file.Remove(file) 
    Else 

     System.Diagnostics.Process.Start(file) 

    End If 

當我嘗試打開該文件時出現以下錯誤。

error 
----- 
The system cannot find the file specified 
+1

你有什麼別的塊在做什麼?試圖運行已刪除/不存在的文件? – roymustang86 2012-07-16 18:35:30

+1

代碼沒有意義,因爲如果它不存在,則嘗試執行該文件。此外,請注意,你**不能**可靠地測試文件的存在,這是根本不可能的,因爲文件系統不給你獨佔訪問文件(在Unix上這顯然是可能的) – 2012-07-16 18:46:56

回答

2

除了康拉德的約試圖執行您剛纔檢查不存在的文件,點:

1)這不是一個好主意來命名變量file,因爲它可能會混淆系統。 IO.File。

2)它是File.Delete,而不是file.Remove - 你調用String.Remove方法,因爲file是一個字符串。您應該使用選項嚴格在,因爲它會爲您捕獲該錯誤。

3)在Windows Vista和更高版本中,您可能沒有對C:的寫入/刪除訪問權限。

假設你已經到目錄C寫訪問:\ TEMP然後這個工程:

Dim fyle As String = "C:\temp\test.txt" 

If System.IO.File.Exists(fyle) Then 
    IO.File.Delete(fyle) 
End If 

IO.File.Create(fyle) 
System.Diagnostics.Process.Start(fyle) 
+0

我無法打開記事本在d:\下。上面的編碼以未加註的名稱打開記事本。 – vps 2012-07-17 04:59:49

+0

@ sudha.s我不知道你的評論是在標記我的答案作爲答案之前還是之後添加的,但是當我使用Dim fyle As String =「D:\ test.txt」時,它按預期工作,即它會用文件test.txt打開我的文本編輯器。 – 2012-07-17 17:26:30

+0

你可能知道如何做到這一點的Windows 7,以及如何實際獲得承認? – deltu100 2012-11-15 12:37:45

相關問題