如何创建和读取用户设置后可编辑的文本文件?
how to create and read a text file,that is editable after setup by user?
我使用 fileStream 创建了一个文本文件,我制作了 setup.exe 和 运行。然后当我想通过手动打开文件并保存来更改其内容时,它被拒绝了。显示错误:"you do not have permission to open this file. see the owner of the file or an administrator to obtain permission"。
我在 visual studio 中的代码是:
FileStream myTfile = new FileStream(Application.StartupPath + @"\data\TextFile\Temperature.txt",
FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite);
lines = File.ReadAllLines(Application.StartupPath + @"\data\TextFile\Temperature.txt");
在这里创建或打开一个文件:
FileStream myTfile = new FileStream(Application.StartupPath +
@"\data\TextFile\Temperature.txt",
FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite);
系统会在您完成后保持打开状态。完成后,您需要告诉系统释放与该文件关联的资源。为此,请使用 using 语句:
using(FileStream myTfile = new FileStream(path)){
// your code here
}
或在完成后手动关闭它:
myTfile.Close();
首先,正如 Slava 所建议的那样,在 using()
中使用 FileStream
是一个非常好的主意,以确保 FileStream 正确关闭:
using(FileStream myTfile = new FileStream(path)){
// make your read write operations here
}
但是,您的问题并非如此。问题是您尝试修改的文件位于需要更多访问权限的路径中并且受到限制。系统驱动器(通常是 C:)中的许多文件夹都是这样的,包括特定用户的文档、桌面、...文件夹等等的路径。
解决方法是:
选项 1. 您可以选择不受限制且不需要特殊权限的路径,例如:
C:\Users\Public // assuming drive C is the system drive
选项 2. 将您的申请 运行 设为管理员:
- 为此,请在解决方案资源管理器中右键单击并选择“添加”>“新建项”
- Select "Application Manifest File"
-打开你刚刚添加的项目并更改
<requestedExecutionLevel>
到
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
我使用 fileStream 创建了一个文本文件,我制作了 setup.exe 和 运行。然后当我想通过手动打开文件并保存来更改其内容时,它被拒绝了。显示错误:"you do not have permission to open this file. see the owner of the file or an administrator to obtain permission"。 我在 visual studio 中的代码是:
FileStream myTfile = new FileStream(Application.StartupPath + @"\data\TextFile\Temperature.txt",
FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite);
lines = File.ReadAllLines(Application.StartupPath + @"\data\TextFile\Temperature.txt");
在这里创建或打开一个文件:
FileStream myTfile = new FileStream(Application.StartupPath +
@"\data\TextFile\Temperature.txt",
FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite);
系统会在您完成后保持打开状态。完成后,您需要告诉系统释放与该文件关联的资源。为此,请使用 using 语句:
using(FileStream myTfile = new FileStream(path)){
// your code here
}
或在完成后手动关闭它:
myTfile.Close();
首先,正如 Slava 所建议的那样,在 using()
中使用 FileStream
是一个非常好的主意,以确保 FileStream 正确关闭:
using(FileStream myTfile = new FileStream(path)){
// make your read write operations here
}
但是,您的问题并非如此。问题是您尝试修改的文件位于需要更多访问权限的路径中并且受到限制。系统驱动器(通常是 C:)中的许多文件夹都是这样的,包括特定用户的文档、桌面、...文件夹等等的路径。
解决方法是:
选项 1. 您可以选择不受限制且不需要特殊权限的路径,例如:
C:\Users\Public // assuming drive C is the system drive
选项 2. 将您的申请 运行 设为管理员:
- 为此,请在解决方案资源管理器中右键单击并选择“添加”>“新建项”
- Select "Application Manifest File"
-打开你刚刚添加的项目并更改
<requestedExecutionLevel>
到
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />