1

我正在尝试在用户文件夹中创建一个文件并用一些基本文本填充它。看起来很简单,但我不断收到错误消息:

找不到路径“C:\websites\admin\upload\users\testuserID\testuserIDSampleRecord.txt”的一部分。”} System.Exception {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,但在尝试创建/写入文件时失败。

4

2 回答 2

1

我看到了一些可能导致麻烦的错误...

首先,不要使用 web/文件夹分隔符,而是使用 windows 分隔符\

其次,你没有Server.MapPath在所有你应该使用的位置使用......导致使用网络相对路径而不是本地 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);
于 2013-04-05T15:53:52.210 回答
0

这可能会有所帮助 - 为了让它更容易一点,我没有包含创建文件或文件夹的代码,而只是抓取现有文件,打开它并写入它。

希望这能给你一些方向,你可以从那里开始。

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();
        }

    }

需要注意的一件事:确保您对要写入的文件夹和文件具有权限。

于 2013-04-05T16:07:15.593 回答