如何:在 Visual Basic 中将文本写入“我的文档”目录中的文件

My.Computer.FileSystem.SpecialDirectories 对象允许用户访问特殊目录,如 MyDocuments 目录。

过程

在“我的文档”目录中写入新的文本文件

  1. 使用 My.Computer.FileSystem.SpecialDirectories.MyDocuments 属性提供路径。

    Dim filePath As String
    filePath = System.IO.Path.Combine(
    My.Computer.FileSystem.SpecialDirectories.MyDocuments, "test.txt")
    
  2. 使用 WriteAllText 方法将文本写入指定文件。

    My.Computer.FileSystem.WriteAllText(filePath, "some text", True)
    

示例

Try
    Dim filePath As String
    filePath = System.IO.Path.Combine(
               My.Computer.FileSystem.SpecialDirectories.MyDocuments, "test.txt")
    My.Computer.FileSystem.WriteAllText(filePath, "some text", False)
Catch fileException As Exception
    Throw fileException
End Try

编译代码

test.txt 替换为要写入的文件的名称。

可靠编程

此代码会重新引发向文件写入文本时可能发生的所有异常。 可以通过使用 Windows 窗体控件(如限制用户选择有效文件名的 OpenFileDialogSaveFileDialog 组件)减少引发异常的可能性。 但是,使用这些控件并不能做到万无一失。 文件系统可以在用户选择文件和代码执行的间隙时间内更改。 因此,处理文件时,几乎总是需要处理异常。

.NET Framework 安全性

如果在部分信任上下文中运行,该代码可能会因特权不足而引发异常。 有关详细信息,请参阅 Code Access Security Basics

此示例创建一个新文件。 如果某个应用程序需要创建文件,则该应用程序需要文件夹的“创建”权限。 可使用访问控制列表设置权限。 如果文件已存在,则该应用程序只需要“写入”权限(这是较弱的权限)。 如有可能,在部署过程中创建文件,并且仅授予针对单个文件的“读取”权限(而不是针对文件夹授予“创建”权限)会更加安全。 此外,较安全的做法是将数据写入用户文件夹,而不是根文件夹或“Program Files”文件夹。 有关详细信息,请参阅 ACL 技术概述

另请参阅