Эксель не открывает файлы с длинными именами
Доброго времени суток! Некоторое время назад столкнулся с проблемой, что в таблицах Excel невозможно редактировать файлы путь и имя которых превышает 255 символов.
Прочитал на сторонних формах о "костыле" - создании виртуального диска, для сокращения пути к файлу.
Хочу это автоматизировать.
К сожалению, мои изыскания не привили привели к успеху. Прошу знающих форумчан помочь с этой проблемой.
Проблема, в данный момент, в том, чтобы получить путь и имя файла, которое открывает Excel, до его загрузки.
Попытка 1:
ЛКМ загружается до открытия нужного файла, но к сожалению в коллекции Workbook только файл "PERSONAL.XLSB".
Файла, который должен открыться после загрузки ЛКМ в этой коллекции нет.
Попытка 2:
Получив hwnd окна по WMI добраться до названия файла. К сожалению, также не нашёл
Попытка 3:
Возможно где-то в переменной среде Excel есть эта информация. Но функция Environ() такой информации не дала.
Идея: Если ни одним способом нет возможности получить информацию, мне требуемую, полагаю возможно написать программу-посредник и назначить на неё открытия файлов excel.
Длинные имена файлов в Excel
Доброго времени суток! Некоторое время назад столкнулся с проблемой, что в таблицах Excel.
Длинные имена файлов
вот например есть файл с длинным именем ~150 знаков если попробовать скопировать его в другую папку.
Длинные имена файлов
Здравствуйте. Подскажите, можно ли решить проблему. Решил систематизировать все файлы на рабочем.
Длинные имена исходных файлов
Доброго времени суток. Опишу суть проблемы: поймал в систему какую-то гадость. Перед тем, как.
Вопрос совершенно непонятен: строку длиной более 255 символов нельзя корректировать в ячейке? Можно. Размер строки (даже в старом офисе) может достигать тысяч символов. Приведите пример того, что не получается. И что такое ЛКМ?
Под аббревиатурой ЛКМ я подразумевал Личная Книга Макросов.
P.s. Благодарю за исправление орфографической ошибки
«Классический» предел 260 символов: drive letter+ :\+ 255 characters of filename+ \(или для округления) + , null terminatorкак сказано в других ответах
Однако реальный внутренний предел 32767 символов , которые могут быть достигнуты путем добавления , \\?\чтобы получить полный путь
Windows API имеет много функций, которые также имеют версии Unicode, чтобы разрешить путь расширенной длины для максимальной общей длины пути 32 767 символов. Этот тип пути состоит из компонентов, разделенных обратной косой чертой, каждая из которых соответствует значению, возвращенному в lpMaximumComponentLengthпараметре GetVolumeInformationфункции (обычно это значение составляет 255 символов). Чтобы указать путь расширенной длины, используйте "\\?"префикс. Например, "\\?\D:\very long path".
Если по каким-либо причинам полные пути не могут быть использованы, то к более глубоким каталогам можно обратиться, подключив их к букве диска с помощью subst/ diskpartили создав соединение / символическую ссылку для сокращения пути
Начиная с Windows 10, MAX_PATHограничение также было удалено, хотя не по умолчанию
Начиная с Windows 10, версия 1607, MAX_PATHограничения были удалены из общих функций файлов и каталогов Win32. Тем не менее, вы должны подписаться на новое поведение.
Также при попытке открыть файл с длинным путем русскими буквами Excel 2013 выдает ошибку:
"Нам не удалось открыть этот файл. Переименуйте файл, дав ему короткое имя, или скопируйте его в другую папку с более коротким путем".
Если путь к файлу латиницей, то такой ошибки не возникает.
Также с помощью Excel 2010 эти файлы с длинным путем русскими буквами нормально открываются.
Т.е. я так понимаю, что русские буквы кодируются в закодированный URI, методом типа encodeURIComponent
и путь становится гораздо длинее.
Почему Excel 2010 открывает, а 2013 нет? Может есть где-то настройка?
Службу Document Id Service не хотелось бы использовать.
- Изменен тип Иван Проданов Microsoft contingent staff, Moderator 9 сентября 2013 г. 6:24
- Изменен тип Иван Проданов Microsoft contingent staff, Moderator 14 ноября 2013 г. 10:40
- Изменен тип Иван Проданов Microsoft contingent staff, Moderator 14 ноября 2013 г. 10:42
Все ответы
А по какой причине Вы не желаете использовать Document Id Service?
Мнения, высказанные здесь, являются отражением моих личных взглядов, а не позиции корпорации Microsoft. Вся информация предоставляется "как есть" без каких-либо гарантий.
Мнения, высказанные здесь, являются отражением моих личных взглядов, а не позиции корпорации Microsoft. Вся информация предоставляется "как есть" без каких-либо гарантий.
Document Id Service не решает данную проблему(
т.к. он в итоге редиректит на оригинальную длинную ссылку.
Столкнулся с такой же ситуацией. Обновил до sharepoint 2013.
- Excel 2013 открывал все документы в Sharepoint 2010.
- Excel 2010 открывает все документы в Sharepoint 2013 после обновления.
- Excel 2013 не открывает документы с длинными именами в Sharepoint 2013 после обновления
То что общая длина URL не должна превышать 255 символов - это понятно, но почему в случае с Excel 2010 это не мешает при открытии того же файла?
Кстати Word 2013 как и Excel 2010 не обращает внимание на длину URL больше 255 - все открывается.
Коллеги, добрый день! Нужна помощь в следующем вопросе:
Есть SharePoint 2010, планируется обновление до 2013. Развернули 2013, подключили копию базы - всё хорошо. На этом же сервере подключили такую же копию базы к другому веб-приложению и пр. и обновили оформление до 2013.
После обновления интерфейса до 2013 обнаружилось, что не открываются некоторые файлы Excel (с другими файлами проблем нет) по причине "218 символов и т.д."
Всё понятно, но:
1. на базе с не обновлённым интерфейсом всё работает,
2. на базе с обновленным интерфейсом . не понятно, и закономерность не прослеживается.
Становится понятно, что если в системе есть что-либо от Office 2013 100% файл не откроется. Есть какие-нибудь идеи?
- Изменено Peter Koreshkov 13 ноября 2013 г. 11:23
- Изменен тип Иван Проданов Microsoft contingent staff, Moderator 25 декабря 2013 г. 8:26
- Изменен тип Иван Проданов Microsoft contingent staff, Moderator 28 мая 2014 г. 6:51
Ответы
Раньше тоже была такая проблема. После установки последних обновлений на office она пропала. (Проверял в IE).
- Помечено в качестве ответа Иван Проданов Microsoft contingent staff, Moderator 28 мая 2014 г. 6:51
Все ответы
Здравствуйте
Можете предоставить текст ошибки или скриншот?
Данная проблема наблюдается со всеми файлами Excel, или только с некоторыми? Имя фалйов на английском или на русском? Попробуйте переименовать файлы, которые невозможно открыть, чтобы посмотреть, что изменится.
Мнения, высказанные здесь, являются отражением моих личных взглядов, а не позиции корпорации Microsoft. Вся информация предоставляется "как есть" без каких-либо гарантий.
Да, пути длинные и с использованием кириллицы, да файлы называются кириллицей.
Но, в ходе тестирования выяснилось, что проблема имеет место только с компонентами Office 2013.
Итого: обе базы на SharePoint Server 2013,
база обновленная - проблема наблюдается только в Office 2013 (или же Office 2010 + "общие средства Office" от Office 2013)
база не обновленная до интерфейса 2013 - проблема не наблюдается даже с Office 2013.
В чём разница между обычным подключением сетевого диска и подключением сетевого диска при помощи политик?
Вопрос начинающего. В чём разница между обычным подключением сетевого диска и подключением сетевого.
Ошибка при открыти ЖД
Подскажите что это. Пытаюсь открыть жесткий, два щелчка выходит ошибка. Ошибка выглядит вот.
Чтение файла с сетевого диска
Есть сервер, на ноуте подключил сетевой диск О. Пытаюсь считать файл, он выдает что не найден такой.
Получить размер файла загруженного из инета или с сетевого диска
Возникла проблема, суть в следующем. Есть програмка которая монитиорит состояние определенной.
Пока вижу несколько возможных причин.
1. Права на папке не позволяют открывать файл.
2. Очень длинный путь до файла, который режется при обращении к файлу.
3. Ошибка файловой системы на диске.
Ни один из вариантов не подходит. При открытии в другой версии экселя на этом и другом компе все - нормально.
Если диск сетевой, то, возможно, имеет смысл не указывать имя диска, а обращаться к нему как непосрдественно к сетевому:
\\Первая папка\Вторая папка\Третья папка (начало)\Чётвертая папка\Имя файла.xlsx
А еще есть вариант проверять наличие диска и его готовность к работе:
Как выяснилось при более глубоком анализе, не открываются только файлы экселя версии 2003 года, сохраненные в формате xls. Такие файлы не открываются не только на сетевом, но и на жёстком диске.
Переустановка екселя проблему не решила.
В итоге пришлось снести профиль и создать новый. В таком случае файлы стали открываться обратно.
При подключении сетевого диска требует логин и пароль
В общем суть вопроса: Есть 2 сервера - 1(win2008 standart) - 2(win2003 enterprise) на каждом.
Блокировка\Разблокировка обработчика при открыти\закрытии дочернего окна
Всем привет. Есть небольшой вопрос по MDI окнам, подсобите пожалуйста. Хочу реализовать такую.
Если вы когда-либо видели эту проблему, это, вероятно, было простым решением для вас. Если вы видели эту ошибку более двух раз, то вы также знаете, что иногда это может быть сложной проблемой.
Будем надеяться, что вы столкнетесь только с набором легких исправлений, но мы подготовим вас к менее простым, гарантированно исправным исправлениям.
Почему длина имени файла является проблемой в Windows?
Существует большая история длины файлов, что является проблемой для операционных систем, таких как Windows. Было время, когда вы не могли иметь имена файлов длиннее 8 символов плюс 3-символьное расширение файла. Лучшее, что вы могли сделать, это что-то вроде myresume.doc. Это было ограничение в отношении дизайна файловой системы.
Все стало лучше, когда вышли новые версии Windows. Мы перешли от старой ограниченной файловой системы к так называемой файловой системе новой технологии (NTFS). NTFS привела нас к тому, что имя файла может быть длиной 255 символов, а длина пути к файлу потенциально может достигать 32 767 символов. Так как же мы можем иметь слишком длинные имена файлов?
В Windows есть вещи, известные как системные переменные. Это переменные, от которых зависит функционирование Windows, потому что Windows всегда будет знать, что означают переменные и где они находятся, даже когда мы перемещаем биты и байты повсюду. Системная переменная MAX_PATH — это та, которая ограничивает имена файлов и пути к файлам до 260 символов.
Будучи переменной, вы думаете, мы могли бы изменить это. Нет, мы не должны. Это все равно что выдернуть нитку из свитера. Как только одна системная переменная изменяется, другие системные переменные и зависимые от них компоненты начинают распадаться.
Настройка Windows 10 на обработку длинных путей к файлам
Если вы знаете, что будете часто использовать длинные пути к файлам и длинные имена файлов, вам будет проще заставить Windows работать. Нет смысла использовать PowerShell для выполнения работы каждый день.
Есть два способа сделать это. Один предназначен для пользователей Windows 10 Home, а другой — для пользователей Windows 10 Pro или Enterprise. Эти методы могут работать для Windows 8.1 или более ранней версии, но мы не можем гарантировать это.
Параметры для Windows 10 Home
Чтобы Windows 10 Home принимала длинные пути к файлам, нам нужно открыть редактор реестра . Если вы раньше не работали в редакторе реестра, будьте осторожны. Случайное удаление или изменение здесь может помешать работе Windows полностью.
Всегда делайте резервную копию вашего реестра, прежде чем вносить какие-либо изменения. Узнайте все, что вам нужно знать об этом, в нашем окончательном руководстве по резервному копированию и восстановлению реестра Windows.
Открыв редактор реестра и сделав резервную копию, перейдите в папку HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem и найдите ключ LongPathsEnabled.
Дважды щелкните LongPathsEnabled. Убедитесь, что в поле Значение данные: номер 1 указан. Нажмите OK, чтобы подтвердить изменения.
Выйдите из редактора реестра, и теперь вы сможете работать с безумными длинными путями к файлам.
Параметры для Windows 10 Pro или Enterprise
Чтобы позволить Windows 10 Pro или Enterprise использовать длинные пути к файлам, мы будем использовать редактор локальной групповой политики. Это инструмент, который позволяет нам устанавливать политики в отношении работы Windows на компьютере и на уровне пользователей.
Откройте редактор групповой политики, перейдя в меню «Пуск» и набрав gpedit . Лучший результат должен быть Изменить групповую политику. Дважды щелкните по этому.
После открытия редактора групповой политики перейдите к Конфигурация компьютера → Административные шаблоны → Система → Файловая система. Там вы увидите политику включения длинных путей Win32.
Дважды щелкните по нему, чтобы изменить параметр политики. Измените его с «Отключено» на «Включено», затем нажмите кнопку «ОК», чтобы зафиксировать изменение.
Политика может не вступить в силу сразу. Вы можете принудительно обновить групповую политику.
Легкое Исправление
Если вам повезет, вы получите ошибку и точно знаете, какое имя файла вызывает проблему. Или, по крайней мере, где найти файл. Может быть, у вас есть имя файла, которое выглядит примерно так:
Понятно, кто в этом случае виновник. Найдите файл в проводнике Windows или в проводнике, как он называется в Windows 10, нажмите один раз на него, нажмите F2, чтобы переименовать его, и измените это глупое имя файла на более разумное. Задача решена.
Менее простые исправления
Не всегда легко решить эту проблему. Иногда вы не можете изменить имена файлов или каталогов по любой причине.
Следующие решения помогут вам. Их несложно сделать.
Обратите внимание, что слова каталог и папка являются взаимозаменяемыми. Мы будем использовать «каталог» в будущем. Следующие командлеты PowerShell также можно использовать для файлов.
Возможно, путь к файлу выглядит примерно так:
Этот путь к файлу составляет 280 символов. Поэтому мы не можем скопировать каталог оттуда куда-либо еще с помощью обычного метода копирования-вставки. Мы получаем ошибку Destination Path Too Long.
Давайте предположим, что по какой-то причине мы не можем переименовать каталоги, в которые вложен файл. Что мы делаем?
Когда откроется PowerShell, вы окажетесь в корне своего пользовательского каталога. Продолжайте, предполагая, что C:\Users\guymc — ваш пользовательский каталог.
Каталог с именем This находится в каталоге Documents. Чтобы перейти в каталог Documents, мы используем команду cd Documents .
Вы увидите быстрое изменение текущего каталога на C:\Users\guymc\Documents. Это хорошо. Мы работаем ближе к каталогам, которые облегчат жизнь.
Копирование каталога с использованием Copy-Item
Мы хотим скопировать каталог This и его содержимое в ThatNewFolder. Давайте используем команду PowerShell Copy-Item с параметрами -Destination и -Recurse.
-Destination сообщает PowerShell, где мы хотим, чтобы копия находилась. -Recurse говорит PowerShell скопировать все элементы внутри к месту назначения. Копирование оставляет оригиналы там, где они есть, и делает все новые в месте назначения.
Переместить каталог с помощью Move-Item
Допустим, мы хотим переместить каталог This, а также все каталоги и файлы в нем, в ThatNewFolder. Перемещение не оставляет оригинал на месте.
Мы можем использовать команду PowerShell Move-Item с параметрами -Path и -Destination. -Path определяет элемент, который мы хотим переместить, и -Destination сообщает PowerShell, где мы хотим его получить.
Команда поместит это в ThatNewFolder. Он также будет перемещать все, что находится внутри этого каталога. Move-Item может использоваться для перемещения файлов или каталогов, и он работает независимо от пути к файлу или длины имени файла.
Чтобы убедиться, что это работает, используйте команду cd ThatNewFolder , чтобы войти в ThatNewFolder. Затем используйте команду dir для вывода списка каталогов в ThatNewFolder. Вы увидите, что этот каталог находится там.
Удалить каталог с помощью Remove-Item
Если мы хотим удалить этот каталог и все в нем, мы используем команду Remove-Item.
Командлет Remove-Item обладает некоторой встроенной безопасностью, которая затрудняет удаление каталога с содержимым внутри него. В нашем примере мы знаем, что хотим удалить все, поэтому мы будем использовать параметры -Recurse, чтобы заставить его удалять все внутри, и -Force, чтобы он делал это, не спрашивая нас, уверены ли мы в каждом элементе внутри.
Имейте в виду! Восстановить что-либо удаленное таким образом было бы чрезвычайно сложно.
Вы можете снова использовать команду dir, чтобы убедиться, что она пропала.
Вот и все
Существуют и другие способы обхода длинных имен файлов и путей к файлам, но то, что мы здесь рассмотрели, — это самые простые и эффективные методы.
Читайте также: