2010-03-19 25 views
1

当我尝试打开要写入的文件时,我得到一个Ada.IO_Exceptions.Name_Error。为什么我尝试使用open打开文件失败? Ada 95

过程调用Ada.Text_IO.Open

的文件名是 “C:\ CC_TEST_LOG.TXT”。该文件不存在。

这是在NTFS分区上的Windows XP上。用户有权创建并写入目录。 文件名远远低于WIN32最大路径长度。

name_2 : String := "C:\CC_TEST_LOG.TXT" 
if name_2'last > name_2'first then 
    begin 
     Ada.Text_IO.Open(file, Ada.Text_IO.Out_File, name_2); 
     Ada.Text_IO.Put_Line(
      "CC_Test_Utils: LogFile: ERROR: Open, File " 
      & name_2); 
     return; 
    exception 
     when The_Error : others => 
      Ada.Text_IO.Put_Line(
      "CC_Test_Utils: LogFile: ERROR: Open Failed; " 
       & Ada.Exceptions.Exception_Name(The_Error) 
       & ", File " & name_2); 
    end; 
end if; 
+1

与您的问题无关,但最初的if-test(name_2'last> name_2'first)似乎只是检查文件名是否为空。如果这是它的唯一目的,那么只需要: if name_2/=“”then ... – 2010-03-19 12:48:39

+0

Marc C:是的,测试可以改进为name_2'Length/= 0我假设这会比平等测试;但我需要配置文件。 ;) – 2010-03-22 06:17:06

回答

2

如果“文件不存在”,您应该首先使用Create

如果这与您的previous question有关,可能有助于提供更多详细信息。

+0

这是我遇到的原始问题。我在网上或书中找不到答案。所以我在这里要求别人参考。 – 2010-03-22 06:14:29

+0

我想我明白了。你现在能够“创建”文件吗? – trashgod 2010-03-22 06:37:40

相关问题