[英]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.