用c#创建文件和文件夹
本文关键字:文件夹 文件 创建 | 更新日期: 2023-09-27 18:07:54
我试图在用户文件夹中创建一个文件,并使用一些基本文本填充它。看起来很简单,但是我总是得到一个错误:
找不到路径"C:'websites'admin'upload'users'testuserID'testuserIDSampleRecord.txt"的一部分。"}系统。异常{System.IO.DirectoryNotFoundException}
我的网站位于:c:'websites'testsite'
,所以完整的路径应该是:
c:/websites/testsite/admin/upload/users/
IIS localhost被设置为指向c:/websites/
,所以当我运行它时,我输入localhost/testsite
来访问它
我有:
try
{
string SampleCaseText = BuildTextRecord();
string username = (string)Session["userid"];
string folderPath = "/testsite/admin/upload/users/" + username;
bool IsExists = System.IO.Directory.Exists(Server.MapPath(folderPath));
if(!IsExists)
System.IO.Directory.CreateDirectory(Server.MapPath(folderPath));
System.IO.File.Create(folderPath + "/" + username + "SampleRecord.txt");
File.WriteAllText(Path.Combine(folderPath, username + "SampleRecord.txt"), SampleCaseText);
}
它在正确的位置创建了新的文件夹testuserID,但是在尝试创建/写入文件时失败。
我看到有几个错误,可以引起麻烦…
首先不使用web /
文件夹分隔符,而是使用windows '
文件夹分隔符。
其次,你没有使用Server.MapPath
在所有的位置,你应该…导致使用web相对路径而不是本地Windows路径。
尝试这样的东西,我在开始时将文件夹转换为windows路径,并将转换后的userFilename
放入它自己的变量中,并使用它代替…
string folderPath = Server.MapPath("/testsite/admin/upload/users/" + username);
bool IsExists = System.IO.Directory.Exists(folderPath);
if(!IsExists)
System.IO.Directory.CreateDirectory(folderPath);
string userFilename = Path.Combine(folderPath, username + "SampleRecord.txt");
System.IO.File.Create(userFilename);
File.WriteAllText(userFilename, SampleCaseText);
这里有一些东西可能会有所帮助-为了使它更容易一点,我没有包含创建文件或文件夹的代码,而是简单地获取一个现有文件,打开它并向其写入。
希望这能给你一些方向,你可以从那里开始。
private void Error(string error)
{
var dir= new DirectoryInfo(@"yourpathhere");
var fi = new FileInfo(Path.Combine(dir.FullName, "errors.txt"));
using (FileStream fs = fi.OpenWrite())
{
StreamWriter sw = new StreamWriter(fs);
sw.Write(error);
sw.Close();
sw.Dispose();
}
}
有一点要注意:确保你对你想写的文件夹和文件有权限。