Чем кроме цикла отличаются эти 2 функции:
Код:
private async void Add_Click(object sender, RoutedEventArgs e)
{
FileOpenPicker openPicker = new FileOpenPicker();
openPicker.ViewMode = PickerViewMode.Thumbnail;
openPicker.SuggestedStartLocation = PickerLocationId.PicturesLibrary;
openPicker.FileTypeFilter.Add(".jpg");
openPicker.FileTypeFilter.Add(".jpeg");
openPicker.FileTypeFilter.Add(".png");
openPicker.FileTypeFilter.Add(".bmp");
StorageFile file = await openPicker.PickSingleFileAsync();
StorageFolder folderImages = await Package.Current.InstalledLocation.GetFolderAsync(GlobalFuncs.GetLocalFolder());
string localFolder = GlobalFuncs.GetLocalFolder(true, true);
if (file != null) // Если выбрали файл
{
double jq, Blur;
string[] NewName = GlobalFuncs.GetFormatAndNameFromString(file.Name);
string oldName = file.Name;
await file.RenameAsync(imageId.ToString() + NewName[1]);
if (await folderImages.TryGetItemAsync(file.Name) == null) // Если файл с таким именем не существует, то загружаем выбраный
{
var stream = await file.OpenAsync(Windows.Storage.FileAccessMode.Read);
await file.CopyAsync(folderImages); // ВОТ ЗДЕСЬ ВСЕ НОРМАЛЬНО
OpenCvFuncs of = new OpenCvFuncs(GlobalFuncs.GetLocalFolder(true, false) + file.Name);
jq = of.GetJQ();
Blur = of.GetBlur();
listEvaluate.Add(new ListEvaluate(file.Name, String.Format("{0:0.000}", jq), String.Format("{0:0.000}", (Blur)), new Uri(localFolder + file.Name)));
}
else
{
var dialog = new MessageDialog("Файл с таким именем существует!");
await dialog.ShowAsync();
file = await folderImages.GetFileAsync(file.Name);
var stream = await file.OpenAsync(Windows.Storage.FileAccessMode.Read);
OpenCvFuncs of = new OpenCvFuncs(GlobalFuncs.GetLocalFolder(true, false) + file.Name);
jq = of.GetJQ();
Blur = of.GetBlur();
listEvaluate.Add(new ListEvaluate(file.Name, String.Format("{0:0.000}", jq), String.Format("{0:0.000}", (Blur)), new Uri(localFolder + file.Name)));
}
await file.RenameAsync(oldName);
listImageView.ItemsSource = listEvaluate.ToList();
}
else
{
// файл не выбран - ничего не делаем
}
}
Код:
private async void Add_Click(object sender, RoutedEventArgs e)
{
var picker = new Windows.Storage.Pickers.FileOpenPicker();
picker.ViewMode = Windows.Storage.Pickers.PickerViewMode.Thumbnail;
picker.SuggestedStartLocation =
Windows.Storage.Pickers.PickerLocationId.PicturesLibrary;
picker.FileTypeFilter.Add(".jpg");
picker.FileTypeFilter.Add(".jpeg");
picker.FileTypeFilter.Add(".png");
var files = await picker.PickMultipleFilesAsync();
StorageFolder folderImages = await Package.Current.InstalledLocation.GetFolderAsync(GlobalFuncs.GetLocalFolder());
string localFolder = GlobalFuncs.GetLocalFolder(true, true);
if (files.Count > 0)
{
for (int i = 0; i < files.Count; i++)
{
double jq, Blur;
string[] NewName = GlobalFuncs.GetFormatAndNameFromString(files[i].Name);
string oldName = files[i].Name;
await files[i].RenameAsync(imageId.ToString() + NewName[1]);
if (await folderImages.TryGetItemAsync(files[i].Name) == null) // Если файл с таким именем не существует, то загружаем выбраный
{
await files[i].CopyAsync(folderImages); // ЗДЕСЬ ОШИБКА
OpenCvFuncs of = new OpenCvFuncs(GlobalFuncs.GetLocalFolder(true, false) + files[i].Name);
jq = of.GetJQ();
Blur = of.GetBlur();
listEvaluate.Add(new ListEvaluate(files[i].Name, String.Format("{0:0.000}", jq), String.Format("{0:0.000}", (Blur)), new Uri(localFolder + files[i].Name)));
await files[i].RenameAsync(oldName);
}
else
{
var file = await folderImages.GetFileAsync(files[i].Name);
OpenCvFuncs of = new OpenCvFuncs(GlobalFuncs.GetLocalFolder(true, false) + file.Name);
jq = of.GetJQ();
Blur = of.GetBlur();
listEvaluate.Add(new ListEvaluate(file.Name, String.Format("{0:0.000}", jq), String.Format("{0:0.000}", (Blur)), new Uri(localFolder + file.Name)));
await file.RenameAsync(oldName);
}
listImageView.ItemsSource = listEvaluate.ToList();
}
}
else
{
}
listImageView.ItemsSource = listEvaluate.ToList();
}
В первой копирование файла происходит нормально во второй вылетает ошибка что такого файла нет.