Перейти к содержимому

Как обрезать путь до файла java

  • автор:

Как указать путь к файлу в java

Чтобы указать путь к файлу в Java , можно использовать класс java.io.File . Существует несколько способов задания пути:

File file = new File("/path/to/file.txt"); // Здесь /path/to/file.txt - абсолютный путь к файлу. 

Относительный путь от текущего каталога:

File file = new File("file.txt"); // Здесь file.txt - файл, расположенный в текущем каталоге. 

Относительный путь от корня проекта:

File file = new File("src/main/resources/file.txt"); 

Относительный путь к файлу

Здравствуйте. У меня такая проблема: в Спринге поднимаю бин, в бине есть проперти — имя файла, из которого нужно считывать инфо. Так вот, там прописываю имя файла без пути: «myfile.txt» . После этого при инициализации данного поля бина пытаюсь получить путь к файлу через *.class.getResourceAsStream , но получаю на выходе null . Что самое интересное, что если я переименовываю файл в myfile.properties , то все нормально находится и отрабатывает. Объясните пожалуйста, в чем проблема.

Отслеживать
8,667 18 18 золотых знаков 73 73 серебряных знака 181 181 бронзовый знак
задан 26 сен 2011 в 12:33
487 10 10 серебряных знаков 27 27 бронзовых знаков
А сам файл где лежит? Рядом с бином?
26 сен 2011 в 12:47
сам файл лежит в корневике (в src/ — там же где и базовая дериктория объявления пакетов)
26 сен 2011 в 13:00

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Что-то здесь не так.

Попробуйте, во-первых вывести значение свойства перед созданием ресурса. Так как свойство у вас типа String, то спринг изменять его не должен.

Во-вторых, удостоверьтесь, что в output-директории ( bin/ , target/ . ) действительно в папке с классами лежат оба файла (может, IDE шалит).

А еще — если вы хотите считать файл .properties , то, возможно, лучше будет воспользоваться . И в целом, для подключения ресурсов часто удобно пользоваться спринговским автомагическим распознаванием нужных значений по типу. Так, вы можете объявить свойство File configFile и указать в конфиге бина просто строку — и спринг создаст за вас файл из classpath’a.

Java Обрезка пути к файлу

Каким способом можно обрезать путь до папки, указанной в StartDir , чтобы получить следующий результат:

  1. \Folder1
  2. \Folder1\Folder11

Заранее благодарен за ответ.

Отслеживать
2,268 4 4 золотых знака 9 9 серебряных знаков 22 22 бронзовых знака
задан 9 апр 2015 в 13:19
67 1 1 серебряный знак 11 11 бронзовых знаков
Тебе просто букву диска откинуть чтоли?
9 апр 2015 в 13:25

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

import java.nio.file.Path; import java.nio.file.Paths; public class Test < public static void main(String[] args) < Path pathAbsolute = Paths.get("/var/data/stuff/xyz.dat"); Path pathBase = Paths.get("/var/data"); Path pathRelative = pathBase.relativize(pathAbsolute); System.out.println(pathRelative); >> 

Отслеживать
ответ дан 9 апр 2015 в 13:30
2,797 1 1 золотой знак 18 18 серебряных знаков 28 28 бронзовых знаков

  • java
  • файлы
    Важное на Мете
Похожие

Подписаться на ленту

Лента вопроса

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.1.3.2953

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Path. Get File Name Метод

Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.

Перегрузки

Возвращает имя и расширение файла из пути к файлу, представленного диапазоном символов только для чтения.

Возвращает имя файла и расширение указанной строки пути.

GetFileName(ReadOnlySpan)

Возвращает имя и расширение файла из пути к файлу, представленного диапазоном символов только для чтения.

public: static ReadOnlySpan GetFileName(ReadOnlySpan path);
public static ReadOnlySpan GetFileName (ReadOnlySpan path);
static member GetFileName : ReadOnlySpan -> ReadOnlySpan
Public Shared Function GetFileName (path As ReadOnlySpan(Of Char)) As ReadOnlySpan(Of Char)
Параметры

Диапазон только для чтения, содержащий путь, из которого нужно получить имя и расширение файла.

Возвращаемое значение

Символы, следующие за последним символом разделителя каталогов в пути path .

Комментарии

Возвращаемый диапазон только для чтения содержит символы пути, следующие за последним разделителем в path . Если последний символ в path является разделителем тома или каталога, метод возвращает ReadOnlySpan.Empty. Если path не содержит символа-разделителя, метод возвращает path .

См. также раздел

Применяется к

GetFileName(String)

Возвращает имя файла и расширение указанной строки пути.

public: static System::String ^ GetFileName(System::String ^ path);
public static string GetFileName (string path);
public static string? GetFileName (string? path);
static member GetFileName : string -> string
Public Shared Function GetFileName (path As String) As String
Параметры

Строка пути, из которой нужно получить имя файла и расширение.

Возвращаемое значение

Символы, следующие за последним символом разделителя каталогов в пути path . Если последним символом параметра path является символ разделения тома или каталога, этот метод возвращает Empty. Если значением параметра path является null , метод возвращает null .

Исключения

платформа .NET Framework и .NET Core версий старше 2.1: path содержит один или несколько недопустимых символов, определенных в GetInvalidPathChars().

Примеры

В следующем примере показано поведение метода на GetFileName классической платформе Windows.

String^ fileName = "C:\\mydir\\myfile.ext"; String^ path = "C:\\mydir\\"; String^ result; result = Path::GetFileName( fileName ); Console::WriteLine( "GetFileName('') returns ''", fileName, result ); result = Path::GetFileName( path ); Console::WriteLine( "GetFileName('') returns ''", path, result ); // This code produces output similar to the following: // // GetFileName('C:\mydir\myfile.ext') returns 'myfile.ext' // GetFileName('C:\mydir\') returns '' 
string fileName = @"C:\mydir\myfile.ext"; string path = @"C:\mydir\"; string result; result = Path.GetFileName(fileName); Console.WriteLine("GetFileName('') returns ''", fileName, result); result = Path.GetFileName(path); Console.WriteLine("GetFileName('') returns ''", path, result); // This code produces output similar to the following: // // GetFileName('C:\mydir\myfile.ext') returns 'myfile.ext' // GetFileName('C:\mydir\') returns '' 
Dim fileName As String = "C:\mydir\myfile.ext" Dim pathname As String = "C:\mydir\" Dim result As String result = Path.GetFileName(fileName) Console.WriteLine("GetFileName('') returns ''", fileName, result) result = Path.GetFileName(pathname) Console.WriteLine("GetFileName('') returns ''", pathname, result) ' This code produces output similar to the following: ' ' GetFileName('C:\mydir\myfile.ext') returns 'myfile.ext' ' GetFileName('C:\mydir\') returns '' 

Комментарии

Возвращаемое значение равно , null если путь к файлу — null .

Символы разделителя, используемые для определения начала имени файла: DirectorySeparatorChar и AltDirectorySeparatorChar.

Так как \ является законным именем файла в Unix, GetFileName выполнение на платформах под управлением Unix не может правильно возвращать имя файла из пути на основе Windows, например C:\mydir\myfile.ext, но GetFileName выполнение на платформах под управлением Windows может правильно возвращать имя файла из пути на основе Unix, например /tmp/myfile.ext, поэтому поведение GetFileName метода не является строго одинаковым на платформах под управлением Unix и Windows.

Список распространенных задач ввода-вывода см. в разделе Общие задачи ввода-вывода.

См. также раздел

  • Форматы путей к файлам в системах Windows
  • Файловый и потоковый ввод-вывод
  • Практическое руководство. Чтение текста из файла
  • Практическое руководство. Запись текста в файл

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *