您好我正在尝试使用我的第一个Windows窗体应用程序可执行文件中的文本文档创建目录文件,但这里有些错误:
我希望将其与其他本地用户计算机的exe文件一起使用:
string dir = @"C:\Users\Public\AppData\Roaming\AppFolder\document.txt";
if (!Directory.Exists(dir))
{
Directory.CreateDirectory(Path.GetDirectoryName(dir));
var stream = File.CreateText(dir);
}
但我得到了这个:
发生了'System.IO.IOException'类型的未处理异常 mscorlib.dll中
其他信息:进程无法访问该文件 'C:\用户\公用\应用程序数据\漫游\ AppFolder \ doc.txt' 因为它正被另一个进程使用。
答案 0 :(得分:0)
我猜你需要发出可以在其他地方访问的流的命令
stream.Flush();
stream.Close();
答案 1 :(得分:0)
尝试拥抱使用CreateText
语句包含using
。因此在使用后关闭。 File.CreateText
将创建该文件,但它将一直打开,直到它将被关闭。试图打开它两次将导致IOException
。
此代码段是https://msdn.microsoft.com/de-de/library/system.io.file.createtext(v=vs.110).aspx
示例的一部分 string path = @"c:\temp\MyTest.txt";
if (!File.Exists(path))
{
// Create a file to write to.
using (StreamWriter sw = File.CreateText(path))
{
sw.WriteLine("Hello");
sw.WriteLine("And");
sw.WriteLine("Welcome");
}
}
答案 2 :(得分:0)
要在AppData Roaming文件夹中访问/创建文件/目录,您必须执行以下操作
// The folder for the roaming current user
string folder = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
// Combine the base folder with your specific folder....
string specificFolder = Path.Combine(folder, "YourSpecificFolder");
// Check if folder exists and if not, create it
if(!Directory.Exists(specificFolder))
Directory.CreateDirectory(specificFolder);