Чтобы найти файлы по UNC-путям, нужно использовать магический префикс \\?\UNC\
, а не просто \\?\
.
Ссылка: https://msdn.microsoft.com/en-us/library/aa365247 (VS.85) .aspx # maxpath
Так что для доступа //server/share/really/deep/path/etc/etc
, вам нужно
unicode()
) "\\?\\UNC\"
) и "\"
(см. os.path.normpath()
) Результирующая строка Unicode: \\?\UNC\server\share\really\deep\path\etc\etc
Я только немного экспериментировал (намного меньше, чем @stenci) но с Python 2.7 он, кажется, работает нормально с os.walk()
и не работает с os.listdir()
.
Предупреждение: работает с os.walk () только в том случае, если начальный путь обхода находится в пределах предела MAX_PATH, и ни один из подкаталогов в начальном пути также не превысит его. Это потому, что os.walk () использует os.listdir () в верхнем каталоге.
Решено! Объявите две переменные экземпляра: selectedView и oldView. Затем следующий код сделает свое дело:
if (self.oldView != nil)
self.oldView.backgroundColor = [UIColor clearColor];
self.selectedView = [picker viewForRow:row forComponent:kNumberComponent];
self.selectedView.backgroundColor = [UIColor redColor];
[self.selectedView setNeedsDisplay];
self.oldView = self.selectedView;
Вызовите метод -viewForRow: forComponent:
экземпляра UIPickerView
, чтобы получить объект UIView *
. Затем установите фон этого представления UIColor
.
Непонятно, куда вы помещаете приведенный выше код. Это в -pickerView: viewForRow: forComponent: reusingView:
? Вот где это должно быть. Вы уверены, что поддерживаете указатель на метку для этого конкретного представления? Тот факт, что вы рушитесь, говорит о том, что, вероятно, это не так. Было бы полезно использовать более крупный блок кода, включая место, где вы его поместили.
Правильный формат для viewForPicker:
- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view
{
UILabel *label = (UILabel*) view;
if (label == nil)
{
label = [[UILabel alloc] init];
}
[label setText:@"Whatever"];
// This part just colorizes everything, since you asked about that.
[label setTextColor:[UIColor whiteColor]];
[label setBackgroundColor:[UIColor blackColor]];
CGSize rowSize = [pickerView rowSizeForComponent:component];
CGRect labelRect = CGRectMake (0, 0, rowSize.width, rowSize.height);
[label setFrame:labelRect];
return label;
}
Проблема с приведенным выше кодом: он окрашивает метки, но не само средство выбора. Итак, когда вы катитесь к одному или другому концу, есть пустое место, где вы можете видеть белый фон. Установка [myPicker setBackgroundColor ...] не дает того, на что можно надеяться.