string profile = "\\" + txtProfileLoad.Text + ".txt"; profile = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + profile;
变量配置文件正在接收正确的文件路径,但是当我运行它时,File.Exists每次都会出现错误。
if (System.IO.File.Exists(profile) == true)
{
System.IO.StreamReader profileReader;
profileReader = new System.IO.StreamReader(profile);
do
{
profileLevel = profileLevel + profileReader.ReadLine() + "\r\n";
} while (profileReader.Peek() != -1);
loadName(profileLevel);
wordBeingUsed.finalWord = loadedName;
Close();
}
else
{
MessageBox.Show("Invalid file name. Please try again.");
}
没有任何权限阻止它查看文件。 任何帮助都将不胜感激。这让我发疯了。
答案 0 :(得分:2)
这是您尝试阅读的预先存在的文件吗?或者这是您希望创建的新文件? txtProfileLoad.Text
内的价值是什么,问题最有可能发生在这个属性中。
运行完整性检查:
var profile = "mytestfile.txt";
var myFile = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), profile);
File.WriteAllText(myFile, "Testing file write");
if (File.Exists(myFile))
{
// Access works.
}
else
{
//Didn't work
}
如果上面的代码有效,那么您从txtProfileLoad.Text
创建的名称很可能与驱动器上的实际文件不同。另一方面,如果这是一个尚不存在的文件;当然,当你检查Exists时它会返回false。
答案 1 :(得分:0)
您可以使用字符串变量并将文件名传递给它:
string tempFile = txtProfileLoad.Text;
string profile = @"C:\temp\tempfile.txt";
另请查看您是否可以使用文件open方法而不是File.Exist
。
答案 2 :(得分:0)
根据MSDN:
如果调用者具有所需权限并且路径包含现有文件的名称,则true ;否则, false 。这种方法也 如果path为Nothing,无效路径或零长度,则返回false 串。如果调用者没有足够的权限来读取 指定的文件,不抛出异常,方法返回false 不管路径的存在。
您是否尝试过以管理员身份运行?尝试在Visual Studio图标上“右键单击”并选择“以管理员身份运行”,然后查看是否仍然遇到相同的行为。