ASP.Net中的相对路径

ASP.Net中的相对路径,asp.net,visual-studio,Asp.net,Visual Studio,我正在尝试使用Visual Studio Express 2012在ASP.NET中设计一个web表单 我需要从一些文本框中获取数据,并将其写入文本文件 这是一个非常简单的程序,但设置文件路径时遇到问题 此应用程序将被发送给其他人,他们必须从自己的计算机上运行该项目 我想要的文件名为Database.txt,它位于D:\Project\bin\Database.txt中 因此,如果他将此文件夹粘贴到桌面,它将成为C:\Users\Desktop\Project\bin\Database.txt

我正在尝试使用Visual Studio Express 2012在ASP.NET中设计一个web表单

我需要从一些
文本框
中获取数据,并将其写入
文本文件

这是一个非常简单的程序,但设置文件路径时遇到问题

此应用程序将被发送给其他人,他们必须从自己的计算机上运行该项目

我想要的文件名为
Database.txt
,它位于
D:\Project\bin\Database.txt

因此,如果他将此文件夹粘贴到桌面,它将成为
C:\Users\Desktop\Project\bin\Database.txt


无论项目文件夹位于何处,我都无法设置可以找到此文件的动态路径。

您可以做的是将路径放入
web.config
文件中,并根据需要设置值

下面是一些示例代码,可以帮助您

这将进入您的web.config

<configuration>
    <appSettings>
        <add key="myFilePath" value="C:\\whatever\\Data\\"/>
    </appSettings>
</configuration>
使用此代码:

public void WriteToFile(String text)
{
    string logFileName = Server.MapPath("~/bin/DataBase.txt");
    using (StreamWriter writer = File.AppendText(logFileName))
    {
        writer.WriteLine(text);
        writer.Flush();
        writer.Close();
    }
}
使用Server.MapPath(“/”)获取您的虚拟目录的物理路径

看这个。post for server.mappath

在创建.txt文件的地方张贴一些代码。该文件在用户计算机或服务器上的何处?从asp.net只能访问服务器!我更喜欢在写入文件时避免使用绝对路径。。您可以使用
Server.MapPath
方法访问您的应用程序目录与论坛网站不同,我们不使用“感谢”或“感谢任何帮助”或签名。请参阅“.如果其他计算机没有该路径/访问权限怎么办?他必须为运行IIS的用户共享文件夹。那么为什么不能使用
Server.MapPath
?您也可以使用该路径,而不是手动设置,但这是所有文件(代码文件dll等)的路径将保留。您不应该将文件保留在那里。为什么?我们可以在应用程序文件夹的根目录中创建一个名为
log
temp
的文件夹。我们可以正确使用该文件夹?这不会影响其他文件(代码或DLL)…通过这种方式,我们所有的应用程序文件只驻留在一个文件夹中,而不是在不同的文件夹中..通过这种方式,我们可以减少对我们网站文件系统的维护..感谢您的快速响应!但这是用C语言编写的,很遗憾,我的项目是基于VB的。或者有什么方法可以将两者集成?再次提前感谢!
public void WriteToFile(String text)
{
    string logFileName = Server.MapPath("~/bin/DataBase.txt");
    using (StreamWriter writer = File.AppendText(logFileName))
    {
        writer.WriteLine(text);
        writer.Flush();
        writer.Close();
    }
}