SkyDrive fom Metro Style Appに画像やファイルをアップロードすることはできますか?
SkyDriveからファイルを閲覧する方法をすでに見つけました。しかし、SkyDriveへのファイルのアップロードに関しては見つかりませんでした。返信していただければ、とてもありがたいです。
4 に答える
ユーザーがデスクトップアプリをインストールしていない限り、ファイルピッカーメソッドは機能しないと思います。
共有契約を使用する必要があります。共有するデータ ファイル (ストレージ アイテム) を追加すると、SkyDrive が共有ターゲットとして一覧表示され、ユーザーは、SkyDrive 内のどこに保存するかを選択できる UI を取得します。これが私のアプリに実装した方法です。
詳細については...
http://msdn.microsoft.com/en-us/library/windows/apps/hh771179.aspx
XAML/JavaScript を使用している場合、推奨される解決策は FilePicker を使用することです。
次のリンクが役立つ場合があります。
http://msdn.microsoft.com/en-us/library/windows/apps/jj150595.aspx
FileSavePicker を使用してファイルを保存できます。もちろん、これにより、ユーザーはローカル ドキュメント フォルダまたはスカイ ドライブのどこに保存するかを選択できます。ユーザーが管理しています。
FileSavePicker savePicker = new FileSavePicker();
savePicker.SuggestedStartLocation = PickerLocationId.DocumentsLibrary;
savePicker.DefaultFileExtension = ".YourExtension";
savePicker.SuggestedFileName = "SampleFileName";
savePicker.FileTypeChoices[".YourExtension"] = new List<string>() { ".YourExtension"};
StorageFile file = await savePicker.PickSaveFileAsync();
if (file != null)
{
await FileIO.WriteTextAsync(file, "A bunch of text to save to the file");
}
サンプル コードでは、ファイルの内容をコードで作成していることに注意してください。ユーザーがコンピューターから既存のファイルを選択できるようにする場合は、最初に FileOpenPicker を使用し、ファイルを取得してから FileSavePicker を使用して、選択したファイルの内容を SkyDrive に保存する必要があります。
Mamta Dalal と Dangling Neuron に感謝しますが、問題があります。しかし、FileSavePicker を使用できないようです。テキストファイルだけでなく、ファイル(ドキュメントネット、写真)をアップロードする必要があります。あるパスから別のパスにコピーする必要があります。FileSavePicker を使用すると、すべてのファイル コンテンツ (テキスト、png、pdf など) を書き込まなければならず、コピーできません。現在、FolderPicker を使用しています。残念ながら、FolderPicker は SkyDrive をサポートしていません。私のコードは次のとおりです。
>FolderPicker saveFolder = new FolderPicker();
>saveFolder.ViewMode = PickerViewMode.Thumbnail;
>saveFolder.SuggestedStartLocation = PickerLocationId.Desktop;
>saveFolder.FileTypeFilter.Add("*");
>StorageFolder storagefolderSave = await saveFolder.PickSingleFolderAsync();
>StorageFile storagefileSave = [Selected storagefile with file picker];
>await storagefileSave.CopyAsync(storagefolderSave,storagefileSave.Name,NameCollisionOption.ReplaceExisting);
FolderPicker が SkyDrive をサポートしているか、FileSavePicker を使用してファイルをコピーできる場合、それは素晴らしいことです。