Выберите правильное полное имя файла
Обновлено: 21.11.2024
Будь то импорт, экспорт или другие операции, Wolfram Language должен знать, где искать файлы на вашем компьютере, прежде чем он сможет их использовать. Существует ряд каталогов, в которых Wolfram Language автоматически ищет файлы. Однако, когда файлы, которые вы хотите использовать, находятся не в этих каталогах, вам необходимо указать их расположение. Язык Wolfram Language предоставляет для этого несколько удобных способов.
Один из способов указать системе Wolfram, где найти файл или каталог, — ввести полный путь.
Например, импортируйте размер этого изображения, введя полный путь к файлу:
Части этого пути к файлу разделены символом \\, который используется в строках для представления символа \, разделителя файлов в операционной системе Windows.
Если вы не знаете полный путь к файлу, вы можете использовать пункт меню Вставка ▶ Путь к файлу. Это позволяет использовать браузер файловой системы вашего компьютера для выбора файла:
При использовании этого пункта меню необходимо выбрать отдельный файл. Система Wolfram не позволит вам выбрать папку. Чтобы вставить путь к папке, выберите файл в этой папке и вручную удалите имя файла из пути.
В качестве альтернативы вы можете использовать DirectoryName с именем файла:
Вы также можете вставить путь к папке или файлу, просто используя перетаскивание в сочетании с сочетанием клавиш.
В Mac OS X сначала перейдите к файлу или папке. Нажмите и перетащите его на блокнот, а затем, удерживая клавишу, отпустите кнопку мыши:
В Windows сделайте то же самое, только удерживайте клавиши при отпускании кнопки мыши. Курсор изменится, показывая, что путь будет вставлен, когда вы отпустите кнопку мыши:
В Linux для вставки пути к файлу или папке с помощью перетаскивания используется сочетание клавиш . Однако, в зависимости от вашей программы файлового менеджера, вы можете не увидеть изменения в курсоре. Даже если курсор не изменится, удержание при перетаскивании файла или папки все равно вставит правильный путь.
В Windows и Linux вставка пути к файлу или папке с помощью перетаскивания не будет работать в версиях Mathematica до 8.
Чтобы узнать о программном создании путей к файлам и каталогам, см. раздел Практическое руководство. Ввод и создание имен файлов в языке Wolfram Language.
Информацию об определении и изменении каталогов, которые система Wolfram автоматически использует при поиске файлов, см. в разделе Как найти и использовать файлы.
но переменная filePath содержит только имя выбранного файла, а не полный путь.
Я искал его в сети, но кажется, что из соображений безопасности браузеры (FF, Chrome) просто дают имя файла.
Есть ли другой способ получить полный путь к выбранному файлу?
Если вам нужно получить путь к файлу на сервере (например, при создании веб-интерфейса к утилите командной строки для запуска на сервере), вы всегда можно построить относительный путь, отправить его как s и использовать виджет дерева или ввести вперед, чтобы пользователь мог выбрать его, а затем сервер обработал файл.
13 ответов 13
Из соображений безопасности браузеры не разрешают это, т. е. JavaScript в браузере не имеет доступа к файловой системе, однако, используя файловый API HTML5, только Firefox предоставляет свойство mozFullPath, но если вы попытаетесь получить значение, он вернет пустую строку. :
Так что не тратьте время зря.
изменить: если вам нужен путь к файлу для чтения файла, вы можете вместо этого использовать FileReader API. Вот связанный с этим вопрос о SO: Предварительный просмотр изображения перед его загрузкой.
@AmirTugi Это решение читает файл. Это не имеет ничего общего с путем к файлу в файловой системе пользователя.
Это даст вам временный путь, а не точный путь, вы можете использовать этот скрипт, если хотите показать выбранные изображения, как в этом примере jsfiddle (попробуйте, выбрав изображения, а также другие файлы): -
Вот код:-
Это не совсем то, что вы искали, но, возможно, это может вам где-то помочь.
Есть ли способ сделать это с другими типами файлов: pdf, docx и т. д. и вместо изображения показывать значок? Для моего использования я хочу хранить файлы на странице, прежде чем отправлять их, давая пользователю возможность добавить комментарий, чтобы загрузить его, как сообщение с текстом.
Мне нужно только поместить содержимое "tmppath" в адресную строку браузера? Я пытался, и это не работает.
В 3-й строке следует использовать переменную tmppath вместо URL.createObjectURL(event.target.files[0]), это более оптимизировано.
Вы не можете этого сделать — браузер не позволит этого из соображений безопасности.
Когда файл выбирается с помощью объекта input type=file, значение свойства value зависит от значения параметра безопасности «Включить путь к локальному каталогу при загрузке файлов на сервер» для зоны безопасности используется для отображения веб-страницы, содержащей объект ввода.
Полное имя выбранного файла возвращается, только если этот параметр включен. Когда этот параметр отключен, Internet Explorer 8 заменяет локальный диск и путь к каталогу строкой C:\fakepath\, чтобы предотвратить ненадлежащее раскрытие информации.
И другие
Вы пропустили ); это в конце функции события изменения.
Также не создавайте функцию для события изменения, а просто используйте ее, как показано ниже,
Путь указывает расположение файлов, например, C:\work\my_data (на платформах Microsoft ® Windows ®) или /usr/work/my_data (на платформах Linux ® или Mac). Если вы не задаете имя пути при доступе к файлу, MATLAB ® сначала ищет в текущей папке. Чтобы указать файл в определенном месте, укажите путь.
Спецификации имени пути различаются в зависимости от платформы, на которой вы используете MATLAB. Используйте функцию fullfile для создания имен путей в инструкциях, которые работают на любой платформе. Эта функция особенно полезна, когда вы предоставляете код кому-то, кто использует его на платформе, отличной от вашей.
fullfile вставляет разделители файлов, зависящие от платформы, где это необходимо. Символ-разделитель файлов — это символ, который отличает один уровень папки от другого в имени пути. Косая черта (/) является допустимым разделителем на любой платформе. Обратная косая черта (\) допустима только на платформах Microsoft Windows. В полном пути к папке последняя косая черта не обязательна. Введите filesep в командном окне, чтобы определить правильный символ-разделитель файлов для использования на вашей платформе.
Чтобы определить платформу, на которой в данный момент работает MATLAB, используйте функции ismac, ispc и isunix.
Символы в именах файлов и папок
Имена файлов должны начинаться с буквы и могут содержать буквы, цифры или символы подчеркивания.
Избегайте использования символов ударения, таких как умляуты или циркумфлексы, в именах путей. MATLAB может не распознать путь. Кроме того, попытки сохранить файл по такому пути могут привести к непредсказуемому поведению.
Если путь или имя файла содержат пробелы, заключите ввод в одинарные кавычки. Например:
Абсолютные и относительные пути
MATLAB всегда принимает абсолютные имена путей (также называемые полными именами путей), например I:/Documents/My_Files или /users/myuserid/Homework/myfile.m. . Абсолютный путь может начинаться с любого из следующего:
Буква диска на платформах Microsoft Windows, например C:\ .
символ '/' на платформах Linux.
Некоторые функции MATLAB также поддерживают имена относительных путей. Если не указано иное, имя пути относится к текущей папке. Например:
myfile.m относится к файлу myfile.m в текущей папке.
myfolder относится к папке myfolder в текущей папке.
../myfolder/myfile.m относится к файлу myfile.m в папке myfolder, где myfolder находится на том же уровне, что и текущая папка. Каждое повторение ../ в начале пути перемещает папку вверх на дополнительный уровень.
Совет
Если в редакторе открыто и закреплено несколько документов, вы можете скопировать абсолютный путь любого из этих документов в буфер обмена. Эта практика полезна, если вам нужно указать абсолютный путь в другом инструменте MATLAB или внешнем приложении. Щелкните правой кнопкой мыши вкладку документа и выберите "Копировать полный путь в буфер обмена".
Частичные имена путей в MATLAB
Частичное имя пути — это последняя часть полного имени пути для расположения на пути поиска MATLAB. Некоторые функции принимают частичные имена путей.
Используйте частичный путь для:
Укажите расположение независимо от того, где установлен MATLAB.
Найти функцию в определенном наборе инструментов, если несколько наборов инструментов содержат функции с таким именем. Например, чтобы открыть файл для функции set в продукте Database Toolbox™, введите:
Найдите файлы методов. Например, чтобы проверить, существует ли метод построения графика для объекта временного ряда, введите:
Указание символа at ( @ ) в именах папок методов необязательно.
Найдите частные файлы и файлы методов, которые иногда скрыты.
Не забудьте указать достаточную часть имени пути, чтобы часть пути была уникальной.
Максимальная длина имен путей в MATLAB
Максимально допустимая длина имени пути зависит от вашей платформы.
Например, на платформах Microsoft Windows:
Максимальная длина называется MAX_PATH .
Вы не можете использовать абсолютный путь, длина которого превышает 260 символов.
Для относительного пути может потребоваться менее 260 символов. Когда операционная система Windows обрабатывает относительный путь, она может создать более длинный абсолютный путь, возможно превышающий максимальную длину.
Если вы получаете неожиданные результаты при работе с длинными путями, используйте абсолютные пути вместо относительных. В качестве альтернативы используйте более короткие имена для папок и файлов.
Чувствительность к регистру в именах файлов
Как правило, при указании имени файла лучше указывать путь и регистр.
Чувствительность к регистру при вызове функций
Вы вызываете файлы функций, указывая имя файла без расширения. MATLAB возвращает ошибку, если он не может найти совпадение с учетом регистра в пути поиска. По умолчанию MATLAB предлагает функцию с правильным регистром.
Когда несколько файлов имеют одно и то же имя, MATLAB следует правилам приоритета, чтобы определить, какой из них вызывать. Дополнительные сведения см. в разделе Порядок приоритета функций.
Чувствительность к регистру при загрузке и сохранении файлов
Платформы Linux — имена файлов вводятся с учетом регистра.
При загрузке или чтении файла указывайте имя файла в правильном регистре.
При сохранении или записи в файл MATLAB сохраняет файл в указанном вами случае. В одной папке могут находиться два файла с одинаковым именем, но разными делами.
Платформы Windows — в именах файлов не учитывается регистр. Операционная система Windows считает два файла с одинаковыми именами одним и тем же файлом, независимо от регистра. Поэтому в одной и той же папке не может быть двух имен файлов, различающихся только регистром.
При попытке открыть файл в любой программе Microsoft Office, указанной в разделе "Относится к", вы получаете одно из следующих сообщений об ошибке:
Не удалось получить доступ к файлу.
Введенный вами путь 'filename' слишком длинный. Введите более короткий путь.
имя файла не найден. Проверьте правильность написания имени файла и правильность расположения файла.
Произошла ошибка DDE, описание ошибки не может быть отображено, так как оно слишком длинное. Если имя файла или путь слишком длинные, попробуйте переименовать файл или скопировать его в другую папку.
Эта проблема возникает при открытии файла с подключенного диска, пути UNC или URL-адреса (веб-адреса).
Причина
Эта проблема возникает из-за ограничения количества символов при создании и сохранении файлов в продуктах Office. Эта проблема возникает, если путь к файлу, который вы открываете или сохраняете, соответствует следующему условию:
Microsoft Word, Microsoft PowerPoint и Microsoft Access: общая длина пути и имени файла, включая расширение имени файла, превышает 259 символов.
Microsoft Excel: общая длина пути и имени файла, включая расширение имени файла, превышает 218 символов.
Это ограничение включает три символа, обозначающие диск, символы в именах папок, символы обратной косой черты между именами папок и символы в самом имени файла.
Временное решение
Чтобы обойти эту проблему, попробуйте любой из следующих обходных путей.
Временное решение 1: уменьшите количество символов
- Переименуйте файл, чтобы он имел более короткое имя.
- Переименуйте одну или несколько папок, содержащих файл, чтобы они имели более короткие имена.
- Переместите файл в папку с более коротким путем.
Временное решение 2. Доступ, открытие и восстановление вручную
Запустите Word, Excel или PowerPoint.
На вкладке "Файл" выберите "Открыть" > "Обзор", чтобы найти поврежденный файл.
Выберите файл, откройте меню «Открыть» в нижней части окна, а затем выберите «Открыть и восстановить».
Этот параметр восстанавливает поврежденный файл, а затем открывает файл. После восстановления документа, книги или презентации важно убедиться, что проблема успешно решена. Для этого начните работу с файлом и убедитесь, что все работает должным образом.
Временное решение 3. Измените формат файла и сохраните его повторно
Возможно, вы сможете спасти поврежденный файл, повторно сохранив его в другом формате, а затем вернув исходный формат. В этом примере используется Word.
Шаг 1. Сохраните файл в другом формате
В меню "Файл" выберите "Открыть", а затем найдите и откройте поврежденный файл.
В меню "Файл" выберите "Сохранить как" > "Обзор".
Перейдите к местоположению файла, в котором вы хотите сохранить.
В списке Тип файла выберите нужный формат файла. Например, выберите Rich Text Format (*rtf).
Выберите «Сохранить», а затем выберите «Файл» > «Закрыть».
Шаг 2. Повторно сохраните файл как документ Word
Выберите «Файл» > «Открыть».
Выберите новый файл, сохраненный как форматированный текстовый файл, и нажмите кнопку Открыть.
Выберите «Файл» > «Сохранить как».
В списке Тип файла выберите Документ Word.
Переименуйте файл и нажмите Сохранить.
Вы должны сделать это только один раз, чтобы убедиться, что документ теперь будет правильно работать на вашем устройстве. Однако имейте в виду, что, сохраняя файл как новый документ, вы создаете другой файл. Чтобы избежать путаницы, назовите новый файл каким-нибудь отличительным именем и заархивируйте или удалите поврежденную версию. Сделав это, вы случайно не откроете исходный файл, который не был переформатирован.
Обходной путь 4: открыть файл неизвестного формата
Если вы можете исключить повреждение файла как виновника, проверьте ассоциации файлов и нераспознанные форматы файлов. Иногда файл не открывается на вашем устройстве, потому что устройство, на котором файл был создан, использовало программное обеспечение, которого нет на вашем устройстве.
Например, в Word вы хотите просмотреть PDF-файл, прикрепленный к сообщению электронной почты. Однако у вас не установлено средство просмотра PDF. Поэтому ваше устройство не знает, какую программу открыть для просмотра файла. В этом случае вы можете изменить формат файла, чтобы он соответствовал установленной программе.
Сохраните вложение на свой компьютер. Для этого щелкните стрелку вниз рядом с вложением в сообщении, выберите Сохранить как, перейдите в нужное место и выберите Сохранить.
В меню "Файл" выберите "Открыть" > "Обзор", чтобы найти файл.
Щелкните файл правой кнопкой мыши, выберите Открыть с помощью, а затем выберите другую программу, чтобы открыть файл.
Если нужной программы нет в списке, выберите «Выбрать другое приложение», чтобы найти другую программу.
Если это работает и вы хотите, чтобы выбранная программа всегда открывала файлы этого типа, установите флажок Всегда использовать это приложение для открытия файлов .docx (например).
Дополнительную информацию о форматах файлов и управлении ими см. в разделе Сведения о форматах файлов.
Временное решение 5. Очистите место на диске
Возможно, вы не сможете открыть новый файл или сохранить файл на своем устройстве, если на жестком диске заканчивается свободное место. На полном диске большая часть пространства занята временными, повторяющимися и ненужными элементами. Самый быстрый и простой способ освободить место на жестком диске – использовать приложение "Очистка диска", входящее в состав Windows.
Выберите «Поиск» и введите «Очистка диска».
В списке результатов выберите Очистка диска.
Откроется диалоговое окно с параметрами для удаления ненужных файлов. Установите флажок рядом с каждой категорией элементов, которые вы хотите удалить с вашего устройства, а затем нажмите кнопку ОК. Все в этом списке можно безопасно удалить.
При появлении запроса подтвердите, что хотите навсегда удалить ненужные файлы.
Следующие типы файлов являются примерами съемных элементов, которые вы можете увидеть в списке очистки диска:
Это пошаговое руководство знакомит с основами файлового ввода-вывода в Visual Basic. В нем описывается, как создать небольшое приложение, которое выводит список и проверяет текстовые файлы в каталоге. Для каждого выбранного текстового файла приложение предоставляет атрибуты файла и первую строку содержимого. Существует возможность записи информации в файл журнала.
В следующих инструкциях на вашем компьютере могут отображаться другие имена или местоположения для некоторых элементов пользовательского интерфейса Visual Studio. Эти элементы определяются имеющейся у вас версией Visual Studio и параметрами, которые вы используете. Дополнительную информацию см. в разделе Персонализация среды IDE.
Создать проект
В меню "Файл" выберите "Новый проект".
Появится диалоговое окно "Новый проект".
На панели «Установленные шаблоны» разверните Visual Basic и щелкните Windows. На панели "Шаблоны" в центре нажмите "Приложение Windows Forms".
В поле "Имя" введите FileExplorer, чтобы задать имя проекта, а затем нажмите "ОК".
Visual Studio добавит проект в обозреватель решений, и откроется конструктор Windows Forms.
Добавьте в форму элементы управления из следующей таблицы и установите соответствующие значения для их свойств.
Чтобы выбрать папку и список файлов в папке
Создайте обработчик события Click для browserButton, дважды щелкнув элемент управления в форме. Откроется редактор кода.
Добавьте следующий код в обработчик события Click.
Вызов FolderBrowserDialog1.ShowDialog открывает диалоговое окно "Обзор папок". После того как пользователь нажмет OK, свойство SelectedPath будет отправлено в качестве аргумента в метод ListFiles, который будет добавлен на следующем шаге.
Добавьте следующий метод ListFiles.
Этот код сначала очищает ListBox.
Затем метод GetFiles извлекает набор строк, по одной для каждого файла в каталоге. Метод GetFiles принимает аргумент шаблона поиска для извлечения файлов, соответствующих определенному шаблону. В этом примере возвращаются только файлы с расширением .txt.
Строки, возвращаемые методом GetFiles, затем добавляются в ListBox.
Запустите приложение. Нажмите кнопку Обзор. В диалоговом окне «Обзор папок» перейдите к папке, содержащей файлы .txt, затем выберите папку и нажмите «ОК».
ListBox содержит список файлов .txt в выбранной папке.
Остановите запуск приложения.
Чтобы получить атрибуты файла и содержимое из текстового файла
Создайте обработчик события Click для examButton, дважды щелкнув элемент управления в форме.
Добавьте следующий код в обработчик события Click.
Код проверяет, выбран ли элемент в ListBox . Затем он получает запись пути к файлу из ListBox. Метод FileExists используется для проверки существования файла.
Путь к файлу отправляется в качестве аргумента в метод GetTextForOutput, который добавляется на следующем шаге. Этот метод возвращает строку, содержащую информацию о файле. Информация о файле отображается в окне MessageBox.
Добавьте следующий метод GetTextForOutput.
Код использует метод GetFileInfo для получения параметров файла. Параметры файла добавляются в StringBuilder.
Метод OpenTextFileReader считывает содержимое файла в StreamReader. Первая строка содержимого получается из StreamReader и добавляется в StringBuilder .
Запустите приложение. Щелкните Обзор и перейдите к папке, содержащей файлы .txt. Нажмите "ОК".
Выберите файл в ListBox и нажмите Проверить. MessageBox показывает информацию о файле.
Остановите запуск приложения.
Чтобы добавить запись в журнал
Добавьте следующий код в конец обработчика события examButton_Click.
Код задает путь к файлу журнала, чтобы поместить файл журнала в тот же каталог, что и выбранный файл. Текст записи журнала устанавливается на текущую дату и время, за которыми следует информация о файле.
Метод WriteAllText с аргументом append, равным True, используется для создания записи в журнале.
Запустите приложение. Перейдите к текстовому файлу, выберите его в ListBox, установите флажок «Сохранить результаты» и нажмите «Проверить». Убедитесь, что запись журнала записана в файл log.txt.
Остановите запуск приложения.
Чтобы использовать текущий каталог
Создайте обработчик событий для Form1_Load, дважды щелкнув форму.
Добавьте следующий код в обработчик событий.
Этот код устанавливает каталог по умолчанию для браузера папок в текущий каталог.
Запустите приложение. Когда вы нажимаете «Обзор» в первый раз, диалоговое окно «Обзор папок» открывается в текущем каталоге.
Остановите запуск приложения.
Чтобы выборочно включить элементы управления
Добавьте следующий метод SetEnabled.
Метод SetEnabled включает или отключает элементы управления в зависимости от того, выбран ли элемент в ListBox.
Создайте обработчик событий SelectedIndexChanged для filesListBox, дважды щелкнув элемент управления ListBox в форме.
Добавьте вызов SetEnabled в новый обработчик событий filesListBox_SelectedIndexChanged.
Добавьте вызов SetEnabled в конце обработчика событияBrowseButton_Click.
Добавьте вызов SetEnabled в конце обработчика событий Form1_Load.
Запустите приложение. Флажок "Сохранить результаты" и кнопка "Исследовать" отключаются, если элемент не выбран в списке.
Читайте также: