我编写了一些代码,需要我保存文本文件。但是,我需要将其保存到我的项目根目录,以便任何人都可以访问它,而不仅仅是我。
这是有问题的方法:
private void saveFileToolStripMenuItem_Click(object sender, EventArgs e)
{
try
{
string fileName = Microsoft.VisualBasic.Interaction.InputBox("Please enter a save file name.", "Save Game");
if (fileName.Equals(""))
{
MessageBox.Show("Please enter a valid save file name.");
}
else
{
fileName = String.Concat(fileName, ".gls");
MessageBox.Show("Saving to " + fileName);
System.IO.File.WriteAllText(saveScene.ToString(), AppDomain.CurrentDomain.BaseDirectory + @"\" + fileName);
}
}
catch (Exception f)
{
System.Diagnostics.Debug.Write(f);
}
}
很多人告诉我,使用AppDomain.CurrentDomain.BaseDirectory
将包含应用程序存储位置的动态位置。但是,当我执行此操作时,没有任何反应,也没有创建文件。
还有另一种方法可以做到这一点,还是我使用它完全错误?
文件.WriteAllText http://msdn.microsoft.com/en-us/library/ms143375.aspx需要两个参数:
第一个是文件名,第二个是要写入的内容
File.WriteAllText(AppDomain.CurrentDomain.BaseDirectory + @"\" + fileName,
saveScene.ToString());
但请记住,如果运行应用程序的用户没有文件夹的写入权限,则写入当前文件夹可能会出现问题。 (在最新的操作系统中,对程序文件的写入非常有限)。如果可能,请将此位置更改为中定义的位置环境.特殊文件夹 http://msdn.microsoft.com/en-us/library/system.environment.specialfolder.aspx enum
我还想建议使用System.IO.Path类 https://msdn.microsoft.com/en-us/library/system.io.path(v=vs.110).aspx当您需要构建路径而不是使用非常的字符串连接时“特定于操作系统”持续的"\"
分开路径。
在你的例子中我会写
string destPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory,fileName);
File.WriteAllText(destPath, saveScene.ToString());
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)