用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,但是在尝试创建/写入文件时失败。

用c#创建文件和文件夹

我看到有几个错误,可以引起麻烦…

首先不使用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();
        }
    }

有一点要注意:确保你对你想写的文件夹和文件有权限。