C#filenotfound我有一个C#VisualStudio2008窗体,需要读取关联文件'character/attacks.txt'的内容。File.Exists()returnsfalseat运行时,即使我很确定我的目录已排序。代码:try{System.IO.StreamReaderfile=newSystem.IO.StreamReader("character/attacks.txt");整数计数器=0;intnumberOfLines=0;弦线;while((line=file.ReadLine())!=null){numberOfLines++;}string[]attacks=newstring[numberOfLines];while((line=file.ReadLine())!=null){attacks[counter]=line;计数器++;}file.Close();打印(攻击。ToString());}catch(Exceptionex){print("ERROR");print("你是否编辑过任何文件?");打印(例如。ToString());}异常错误:System.IO.FileNotFoundException:找不到文件'D:UsersAndreyDesktopTurncharacterattacks.txt'。文件名:'D:UsersAndreyDesktopTurncharacterattacks.txt'在System.IO.__Error.WinIOError(Int32errorCode,StringmaybeFullPath)在System.IO.FileStream.Init(Stringpath,FileModemode,FileAccessaccess,Int32rights,BooleanuseRights,FileShareshare,Int32bufferSize,FileOptionsoptions,SECURITY_ATTRIBUTESsecAttrs,StringmsgPath,BooleanbFromProxy)在系统.IO.FileStream..ctor(字符串路径,FileMode模式,FileAccess访问,FileShare共享,Int32bufferSize,FileOptions选项)在System.IO.StreamReader..ctor(字符串路径,编码编码,BooleandetectEncodingFromByteOrderMarks,Int32bufferSize)在系统.IO.StreamReader..ctor(Stringpath)atTurnByTurn.Form1.button1_Click(Objectsender,EventArgse)inD:UsersAndreyDesktopC#TurnByTurnTurnByTurnForm1.cs:line52我正在从Python移植我的代码,从来没有遇到任何问题谢谢进步!这很奇怪。计算机似乎确信D:UsersAndreyDesktopTurncharacter目录下没有attacks.txt文件,但你说肯定有。你们中的一个一定是错的,这些年来我学习计算机的次数比我自己多。您确定您的文件实际上具有.txt扩展名而不是.txt.somethingelse扩展名吗?如果在Windowsshell中关闭了文件扩展名的显示,则可能会丢失此额外的文件扩展名。但是,您的计算机内部并没有丢失它,它看到的文件与您请求的文件完全不同。那个人有同样的问题。要重新配置Windows资源管理器:打开控制面板文件夹。单击文件夹选项。切换到视图选项卡。在“高级设置”列表框中的项目列表中,找到“显示隐藏的文件、文件夹和驱动器”单选按钮并确保它被选中。单击确定。这个问题的其他答案确实提出了一些很好的建议。其中:确保如果在字符串文字(这是标准的Windows路径分隔符)中使用反斜杠,则它们会用第二个反斜杠“转义”。需要这样做的原因是反斜杠被C#编译器解释为转义字符,它允许您键入类似t的内容来插入制表符。如果要插入常规反斜杠,则必须转义转义符-\。这就是为什么在尝试使用单个反斜杠时会出现错误的原因。除了转义反斜杠字符(包括空格),您可以告诉C#编译器完全按照键入的方式解释您的字符串文字。这些被称为逐字字符串文字。您可以通过在字符串前加上@字符来完成此操作。例如:@"C:MyDirectoryMyFile.txt"您现在使用的正斜杠字符起作用的原因是为了向后兼容。这不是错误的原因(正如您从异常消息中看到的,包括正在搜索的路径),但在路径中使用正斜杠可能仍然不是一个好主意。如上所述,反斜杠是Windows中的标准路径分隔符。我想因为你的文件名中有一个“”,它可能会把它弄乱并告诉它在characters文件夹中查找attacks.txt文件。编辑:或者至少看起来你告诉它你的文件中有一个斜线。它在错误中为您提供的文件路径是您计算机上文件的实际位置吗?是的,如果您将“/”替换为“”,您将收到无效字符错误。尝试使用2个斜杠System.IO.StreamReaderfile=newSystem.IO.StreamReader("character\attacks.txt");或者以上就是C#学习教程:C#找不到文件分享的全部内容,如果你有使用过需要了解更多C#学习教程,希望大家多多关注——System.IO.StreamReaderfile=newSystem.IO.StreamReader(@"characterattacks.txt");Posix路径分隔符是/并且它在Windows上。使用Directory.GetCurrentDirectory确保当前目录正确。如果当前目录不正确,请使用完整路径或通过Directory.SetCurrentDirectory更改当前目录如需转载请注明出处:
