如何在C#中修改没有扩展名的文件的属性?

如何在C#中修改没有扩展名的文件的属性?,c#,C#,这是我的密码 static string pat = "C:\\" + System.Environment.UserName + "\\AppData\\Local\\Google\\Chrome\\User Data\\Default\\History"; FileInfo hist = new FileInfo(pat); 这里的History是一个文件,没有扩展名。 我想做的就是: hist.IsReadOnly = true; 但是directoryn

这是我的密码

static string pat = "C:\\" + System.Environment.UserName + 
              "\\AppData\\Local\\Google\\Chrome\\User Data\\Default\\History";
FileInfo hist = new FileInfo(pat);
这里的
History
是一个文件,没有扩展名。 我想做的就是:

hist.IsReadOnly = true;

但是
directorynotfoundexception
出现了。请帮助我,我如何访问文件,它认为历史是一个目录

你的道路很奇怪。它以“C:\Username\AppData…”开头

我想你要找的是这样的东西:

string path = System.Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);
path = System.IO.Path.Combine(path, "Google\\Chrome\\User Data\\Default\\History");
结果如下所示(在XP上):

C:\文件和 设置\用户名\本地 设置\应用程序 Data\Google\Chrome\User 数据\默认值\历史记录

Windows7会给你不同的结果

这必须适用于具有或不具有扩展名的文件:

FileInfo fi = new FileInfo(path);
fi.Attributes |= System.IO.FileAttributes.ReadOnly;
这必须适用于目录:

DirectoryInfo di = new DirectoryInfo(path);
di.Attributes |= System.IO.FileAttributes.ReadOnly;

我认为您的目录是错误的,您似乎缺少“用户”文件夹。应该是:

static string pat = "C:\\Users\\" + System.Environment.UserName + ...

运行
dir“C:\UserName\AppData\Local\Google\Chrome\User Data\Default\History”
(将您的用户名替换为
UserName
)会得到什么?您是否缺少路径开头的“Users”文件夹?“C:\\USERS”+System.Environment.UserName+“\\AppData\\etc”我爱你,恶魔!我是个白痴!真傻!谢谢!!对不起,它也不起作用!它认为这是一个目录!同样的例外:(谢谢HABJAN,但我得到了错误-应该是“C:\Users\…”而不是“C:\…”。我是个新手,所以请原谅。谢谢你的时间!@Ravi Shankar:没问题,但似乎你没有理解使用System.Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)的意义。通过对“C:\Users\”进行编码您的应用程序无法在windows xp上运行。请使用GetFolderPath方法。