Как указать путь к файлу в 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 , чтобы получить следующий результат:
- \Folder1
- \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
- Файловый и потоковый ввод-вывод
- Практическое руководство. Чтение текста из файла
- Практическое руководство. Запись текста в файл