10

パスが 255 文字を超えたときに、Robocopy を使用してコピーされたファイルが存在するかどうかを Delphi アプリで確認できるようにする必要があります。通常の「If FileExists(MyFile) then ...」を試しましたが、ファイルが存在する場合でも常に「false」を返します。

ファイルの日付も取得しようとしましたが、空の日付と見なすことができる 1899/12/30 を取得しました。

ファイル検索でも何も返されません。

4

1 に答える 1

10

ファイル名の前に を付け\\?\て、拡張長のパス解析を有効にします。たとえば、あなたは書くでしょう

if FileExists('\\?\'+FileName) then
  ....

これは、Win32 API 関数の Unicode バージョンを呼び出している場合にのみ機能することに注意してください。したがって、Unicode Delphi を使用している場合は、これで十分です。FileExistsそれ以外の場合は、API 関数の Unicode バージョンを呼び出す独自のバージョンを作成する必要があります。

これらの問題は、MSDN: Naming Files, Paths, and Namespaces で詳しく説明されています。

于 2013-06-01T15:24:05.707 に答える