ログファイルを作成する必要のある小さなVBアプリがありますが、見やすいので、理想的にはユーザーのデスクトップにそれを配置したいと思います。
ただし、ファイル(* .txtファイル)を作成しようとすると、次のエラーが発生します-
タイプ'System.UnauthorizedAccessException'の最初のチャンスの例外がmscorlib.dllで発生しました
さて、これが権限の問題であることは明らかですが、回避方法がわからないので、誰かが私を助けてくれるのではないかと思います。ありがとう。
ファイルを作成するための完全なコード(MSDNから取得し、ごくわずかに変更)-
Imports System
Imports System.IO
Imports System.Text
Module write_text
Public Class Log_File
'*'
' Createa a log file on the users desktop and adds the 'output' text to it
'
' @param required string output The text to output to the log
'*'
Public Shared Sub write_to_file(ByVal output As String)
Dim path As String ' The path to where the file to create and write should be saved
Dim file_name As String ' The name of the log file that is to be created
Debug.Print(vbCrLf & " write_to_file(){" & vbCrLf)
' Set the error handler
On Error GoTo ExitError
path = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory)
file_name = "MusicRenaming - " & Date.Today & ".txt"
Debug.Print(" Log file: " & path & "\" & file_name)
' Check if the file exists
If File.Exists(path) = False Then
' Create a file to write too.
Dim sw As StreamWriter = File.CreateText(path)
sw.WriteLine("Hello")
sw.WriteLine("And")
sw.WriteLine("Welcome")
sw.Flush()
sw.Close()
Debug.Print(" File had to be created")
End If
' Open the file to write too
Dim sr As StreamReader = File.OpenText(path)
Do While sr.Peek() >= 0
Console.WriteLine(sr.ReadLine())
Debug.Print(" Output to file complete")
Loop
' Close the file
sr.Close()
Debug.Print(vbCrLf & " }")
ExitError:
If Err.Number <> 0 Then functions.error_handler()
End Sub
End Class
End Module
しないでください-現在、この関数は特に機能していないことに気付きました。最初にファイルを作成しようとしているだけで、それから作業を進めます。