文件操作的一个小问题

Squall001 2017-11-08 11:05:29
下面这个写日志文件的类,调试DEBUG的时候,没报错,但是方法1获取路径用就是不能创建文件,也写不进去数据,但是单独运行EXE文件可以,正常,
用方法2获取路径,一切正常

请问怎么回事啊???


class Log
{
//方法1
//public static string path= System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase;

//方法2
public static string path = @"E:\Project\XX酒店\TSTcpServer\TcpServer\obj\Debug";

public static void WriteLog(string type, string className, string content)
{
try
{
if (!Directory.Exists(path))//如果日志目录不存在就创建
{
Directory.CreateDirectory(path);
}

string time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");//获取当前系统时间
string filename = path + DateTime.Now.ToString("yyyy-MM-dd") + ".log";//用日期对日志文件命名

//创建或打开日志文件,向日志文件末尾追加记录
StreamWriter mySw = File.AppendText(filename);

//向日志文件写入内容
string write_content = time + " " + type + " " + className + ": " + content;
mySw.WriteLine(write_content);

//关闭日志文件
mySw.Close();
}
catch (Exception ex)
{

Console.WriteLine(ex.Message.ToString());
}

}
}


...全文
625 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
Squall001 2017-11-15
  • 打赏
  • 举报
回复
引用 14 楼 wddw1986 的回复:
看你自己发的图片,路径明显就不一样。 不知道你是眼睛有问题还是脑袋有问题。
大哥,还是你稳啊~~~居然路径是在bin里面的。。。。是我看错了~~~
江湖评谈 2017-11-11
  • 打赏
  • 举报
回复
bin / debug no obj/debig obj is 目标 debug
无情时尚 2017-11-10
  • 打赏
  • 举报
回复
14楼和16楼很细心,看出问题了
hanghangz 2017-11-10
  • 打赏
  • 举报
回复
大哥,你目录找错了. 不是在obj下面的debug目录
fantasykakaxi 2017-11-10
  • 打赏
  • 举报
回复
路径不对 改一下路径的设置就好了
cheng2005 2017-11-10
  • 打赏
  • 举报
回复
看你自己发的图片,路径明显就不一样。 不知道你是眼睛有问题还是脑袋有问题。
Squall001 2017-11-10
  • 打赏
  • 举报
回复
引用 6 楼 alexshyong 的回复:
5楼正解,调试的时候可以试着监控路径信息,并打开看能否找到位置,如果不能表示路径错误。

以下是DEBUG状态下的截图,感觉路径没问题
Squall001 2017-11-10
  • 打赏
  • 举报
回复
引用 4 楼 starfd 的回复:
不应该是
System.AppDomain.CurrentDomain.BaseDirectory
这句话也没用,是一样的结果,无法在DEBUG下生成文件
c02645 2017-11-10
  • 打赏
  • 举报
回复
string filename = AppDomain.CurrentDomain.BaseDirectory+ DateTime.Now.ToString("yyyy-MM-dd") + ".log";写到了exe的上一层目录了
c02645 2017-11-10
  • 打赏
  • 举报
回复
为何用public static string path= 用private不行吗? 你是不是这个path被别的逻辑给改了。 AppDomain.CurrentDomain.BaseDirectory没有问题,这个就是exe执行的目录
c02645 2017-11-10
  • 打赏
  • 举报
回复
为何用public static string path=
Squall001 2017-11-10
  • 打赏
  • 举报
回复
引用 3 楼 starfd 的回复:
你都没说报什么错,文件占用吗?
调试的时候没有报错,一切正常,但是就是不会生成文件,这个就是我纳闷的地方
golden24kcn 2017-11-09
  • 打赏
  • 举报
回复
难道不应该是? string filename = path + “\\” + DateTime.Now.ToString("yyyy-MM-dd") + ".log";
  • 打赏
  • 举报
回复
不应该是
System.AppDomain.CurrentDomain.BaseDirectory
  • 打赏
  • 举报
回复
你都没说报什么错,文件占用吗?
Squall001 2017-11-09
  • 打赏
  • 举报
回复
这个问题我也就暂时不去纠结了,反正单独运行EXE的时候他又可以~~~~
冷尘 2017-11-09
  • 打赏
  • 举报
回复
最好在文件保存時增加lock,以免造成文件衝突.
帅猪儿 2017-11-09
  • 打赏
  • 举报
回复
5楼正解,调试的时候可以试着监控路径信息,并打开看能否找到位置,如果不能表示路径错误。
Squall001 2017-11-09
  • 打赏
  • 举报
回复
我怎么看不到这个帖子在C#区?

110,546

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧