簡體   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