Share via


BG_FILE_INFO-Struktur (bits.h)

Stellt die lokalen und Remotenamen der zu übertragenden Datei bereit.

Syntax

typedef struct _BG_FILE_INFO {
  LPWSTR RemoteName;
  LPWSTR LocalName;
} BG_FILE_INFO;

Member

RemoteName

Null-beendete Zeichenfolge, die den Namen der Datei auf dem Server enthält (z. B. http://< server>/<path>/file.ext). Das Format des Namens muss dem verwendeten Übertragungsprotokoll entsprechen. Sie können keine Feldhalter im Pfad oder Dateinamen verwenden. Die URL darf nur gesetzliche URL-Zeichen enthalten. es wird keine Escapeverarbeitung ausgeführt. Die URL ist auf 2.200 Zeichen beschränkt, ohne den NULL-Abschlussator.

Jedes Segment der URL ist auf MAX_PATH Zeichen beschränkt.

Sie können SMB verwenden, um den Remotenamen der herunterzuladenden oder hochzuladenden Datei auszudrücken. es gibt keine SMB-Unterstützung für Upload-Antwort-Aufträge. Sie können den Remotenamen als UNC-Pfad oder als vollständigen Pfad mit einem Netzwerklaufwerk angeben oder das Präfix "file://" verwenden. BITS 1.5 und früher: Das SMB-Protokoll für RemoteName wird nicht unterstützt.

LocalName

Null-beendete Zeichenfolge, die den Namen der Datei auf dem Client enthält. Der Dateiname muss den vollständigen Pfad enthalten (z. B. d:\myapp\updates\file.ext). Sie können keine Feldhalter im Pfad oder Dateinamen verwenden, und Verzeichnisse im Pfad müssen vorhanden sein. Der Pfad ist auf MAX_PATH beschränkt, ohne den NULL-Abschlussator.

Der Benutzer muss über die Berechtigung zum Schreiben in das lokale Verzeichnis für Downloads und den Antwortteil eines Upload-Antwortauftrags verfügen. BITS unterstützt keine NTFS-Streams. Anstatt sitzungsspezifische Netzwerklaufwerke zu verwenden, verwenden Sie UNC-Pfade (z. B. \server\share\path\file). Schließen Sie nicht das \? Präfix im Pfad.

Hinweise

BITS unterstützt die HTTP-, HTTPS- und SMB-Protokolle für RemoteName. Informationen zu HTTP-Anforderungen finden Sie unter HTTP-Anforderungen für BITS-Downloads.

BITS 1.5 und früher: Das SMB-Protokoll für RemoteName wird nicht unterstützt.

Im Folgenden wird ermittelt, ob BITS die Zeitstempel einer Datei weitergibt:

  • Bei HTTP-Downloads verteilt BITS den Änderungszeitstempel der Datei und legt die Erstellungszeit der Datei auf die Änderungszeit fest.
  • Bei HTTP-Uploads gibt BITS die Zeitstempel der Datei nicht weiter.
  • Für SMB-Downloads und -Uploads verteilt BITS die Zeitstempel der Datei.
BITS unterstützt keine SMB-Pfade zu Named Pipes oder Geräten. Rufen Sie die IBackgroundCopyJob3::SetFileACLFlags-Methode auf, um die Besitzer- und ACL-Informationen für dateien beizubehalten, die mit SMB heruntergeladen wurden.

Wenn der Pfad- und Dateinameteil der URL für einen HTTP-Upload- und Upload-Antwort-Auftrag Unicode-Zeichen enthält, die der Codepage auf dem Client und server nicht gemeinsam sind, schlägt die URL-Übersetzung auf dem Server fehl, und der BITS-Auftrag wird in den Fehlerzustand versetzt. Wenn der Serverteil der URL Unicode-Zeichen enthält, müssen Sie den Serverteil mit internationalisierten Domänennamen (IDN) codieren.

BITS schränkt die Größe der Datei nicht ein, die Sie mithilfe von HTTP herunterladen können. Uploadlimits finden Sie in der IIS-Erweiterungseigenschaft BITSMaximumUploadSize .

IIS 5.0: Downloads sind auf 4 GB beschränkt.

BITS 1.2 und früher: Bei HTTP-Downloads beträgt die maximale Dateigröße, die Sie übertragen können, 4 GB; BITS kann die erfolgreiche Übertragung von Dateien über 4 GB nicht garantieren. Wenn die URL Unicode-Zeichen enthält, die nicht im US-ASCII-Zeichensatz enthalten sind, codieren Sie die Unicode-Zeichenfolge in UTF-8, bevor Sie sie als Remotedateinamen an BITS übergeben. Wenn Sie die Zeichenfolge nicht codieren, erhält der HTTP-Server möglicherweise eine falsche URL, und der Auftrag wird möglicherweise in den Fehlerzustand versetzt.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows XP
Unterstützte Mindestversion (Server) Windows Server 2003
Kopfzeile bits.h

Weitere Informationen

IBackgroundCopyFile2::SetRemoteName

IBackgroundCopyFile::GetLocalName

IBackgroundCopyFile::GetRemoteName

IBackgroundCopyJob3::ReplaceRemotePrefix

IBackgroundCopyJob::AddFileSet