繁体   English   中英

无法理解Delphi Windows文件名

[英]Cannot make sense out a Delphi windows file name

我正在尝试从文件X复制到此名称

C:\RIP2\France Clidat\Les Plus Belles Oeuvres - France Clidat\(01)3_ Un Sospiro.flac

我检查了是否没有不良人物,如果我强迫导演这样做,

C:\RIP2\France Clidat\Les Plus Belles Oeuvres - France Clidat

但它拒绝写入文件,我不明白为什么要进行简单的测试

procedure foo(str: string);
var
  f:File;
begin
  Assign(f,str);
  Rewrite(f);
  CloseFile(f);
end;

会崩溃,说它不是有效的文件名,但是它是! 如果我删除所有空格,它将起作用
我迷路了请帮助

由于命令行副本通常需要在文件名两边加上双引号,因此我想知道API是否需要类似的东西。 也许尝试使用单引号或双引号查看是否可以解决问题?

在尝试在其中创建文件之前,请尝试确保其中存在目录。
我在Win7上尝试了D2010,并与ForceDirectories一起使用:

const
  sFilename = 'C:\RIP2\France Clidat\Les Plus Belles Oeuvres - France Clidat\(01)3_ Un Sospiro.flac';

procedure foo(str: string);
var
  f: File;
begin
  if not ForceDirectories(ExtractFileDir(str)) then
    showMessage('ForceDirectories failed')
  else
  begin
    AssignFile(f,str);
    Rewrite(f);
    CloseFile(f);
  end;
end;

procedure TForm10.Button1Click(Sender: TObject);
begin
  foo(sFilename);
end;

尝试一些测试,看看它是否反对括号,下划线,空格等。然后您将了解更多信息。
调用GetLastError来查找是否抛出错误。 Windows可能正在尝试告诉您一些信息,并且您的代码没有监听。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM